www.pudn.com > vdksrc.zip > vdkdebug.c


/*
	vdkdebug.c

	Virtual Disk kernel-mode driver for Windows NT platform
	Debug functions
	Copyright (C) 2003 Ken Kato
*/

#include "vdkbase.h"
#include "vdkutil.h"
#include "vdkioctl.h"
#include "vdkaccess.h"

#include "imports.h"
#include "vdkdrv.h"

#if DBG
extern ULONG 		TraceFlags = 0;
extern const char 	*TraceFile = 0;
extern ULONG 		TraceLine = 0;

//
// Output IO Control code and result status strings
//
VOID
PrintIoCtrlStatus(
	PWSTR		dev_name,
	ULONG		ctrl_code,
	NTSTATUS	status)
{
	PCSTR 	ioctl;
	PCSTR 	stat;
	CHAR 	severity;

	ioctl 	= IoControlCodeToStr(ctrl_code);
	stat 	= VdkStatusStr(status);

	switch (status & 0xf0000000) {
	case 0x00000000:	severity = 'S';	break;
	case 0x40000000:	severity = 'I';	break;
	case 0x80000000:	severity = 'W';	break;
	case 0xC0000000:	severity = 'E';	break;
	default:			severity = '?';
	}

	if (ioctl) {
		if (stat) {
			KdPrint(("[VDK] %S %s - (%c)%s\n", dev_name, ioctl, severity, stat));
		}
		else {
			KdPrint(("[VDK] %S %s - 0x%x\n", dev_name, ioctl, status));
		}
	}
	else {
		if (stat) {
			KdPrint((
				"[VDK] %S Unknown IoControlCode %#x - (%c)%s\n",
				dev_name, ctrl_code, severity, stat));
		}
		else {
			KdPrint((
				"[VDK] %S Unknown IoControlCode 0x%x - 0x%x\n",
				dev_name, ctrl_code, status));
		}
	}
}

#include 
#include 
#include 

#if (VER_PRODUCTID < 2195)
//
// imports from Win2K DDK
//

// mountmgr.h
#define MOUNTMGRCONTROLTYPE  ((ULONG) 'm')
#define MOUNTDEVCONTROLTYPE  ((ULONG) 'M')
#define IOCTL_MOUNTMGR_CREATE_POINT 				CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_DELETE_POINTS				CTL_CODE(MOUNTMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_QUERY_POINTS 				CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY 		CTL_CODE(MOUNTMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER			CTL_CODE(MOUNTMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS			CTL_CODE(MOUNTMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED	CTL_CODE(MOUNTMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED	CTL_CODE(MOUNTMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_CHANGE_NOTIFY				CTL_CODE(MOUNTMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE		CTL_CODE(MOUNTMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES	CTL_CODE(MOUNTMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION	CTL_CODE(MOUNTMGRCONTROLTYPE, 11, METHOD_BUFFERED, FILE_READ_ACCESS)

// mountdev.h
#define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID				CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY		CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME			CTL_CODE(MOUNTDEVCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME	CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTDEV_LINK_CREATED 				CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTDEV_LINK_DELETED 				CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)

// ntdddisk.h
#define IOCTL_DISK_UPDATE_DRIVE_SIZE				CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_GROW_PARTITION					CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_GET_CACHE_INFORMATION			CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_SET_CACHE_INFORMATION			CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_DELETE_DRIVE_LAYOUT				CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_FORMAT_DRIVE 					CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_SENSE_DEVICE 					CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_INTERNAL_SET_NOTIFY				CTL_CODE(IOCTL_DISK_BASE, 0x0102, METHOD_BUFFERED, FILE_ANY_ACCESS)

// ntddft.h
#define FT_SECONDARY_READ_ALT						CTL_CODE(FTTYPE, 4, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
#define FT_PRIMARY_READ_ALT 						CTL_CODE(FTTYPE, 5, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
#define FT_CLUSTER_SET_MEMBER_STATE 				CTL_CODE(FTTYPE,11, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FT_CLUSTER_GET_MEMBER_STATE 				CTL_CODE(FTTYPE,12, METHOD_BUFFERED, FILE_ANY_ACCESS)

// ntddft2.h
#define FTCONTROLTYPE	((ULONG) 'g')
#define FT_CREATE_LOGICAL_DISK						CTL_CODE(FTCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_BREAK_LOGICAL_DISK						CTL_CODE(FTCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_ENUMERATE_LOGICAL_DISKS					CTL_CODE(FTCONTROLTYPE, 2, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_QUERY_LOGICAL_DISK_INFORMATION			CTL_CODE(FTCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_ORPHAN_LOGICAL_DISK_MEMBER				CTL_CODE(FTCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_REPLACE_LOGICAL_DISK_MEMBER				CTL_CODE(FTCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK	CTL_CODE(FTCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_INITIALIZE_LOGICAL_DISK					CTL_CODE(FTCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK		CTL_CODE(FTCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_CHECK_IO 								CTL_CODE(FTCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK		CTL_CODE(FTCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION		CTL_CODE(FTCONTROLTYPE, 12, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_CHANGE_NOTIFY							CTL_CODE(FTCONTROLTYPE, 13, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_STOP_SYNC_OPERATIONS 					CTL_CODE(FTCONTROLTYPE, 14, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define FT_QUERY_LOGICAL_DISK_ID					CTL_CODE(FTCONTROLTYPE, 100, METHOD_BUFFERED, FILE_READ_ACCESS)
#define FT_CREATE_PARTITION_LOGICAL_DISK			CTL_CODE(FTCONTROLTYPE, 101, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

// ntddstor.h
#define IOCTL_STORAGE_LOAD_MEDIA2					CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_EJECTION_CONTROL				CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_MCN_CONTROL					CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX			CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_RESET_BUS 					CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_RESET_DEVICE					CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_STORAGE_GET_DEVICE_NUMBER 			CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_PREDICT_FAILURE				CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_QUERY_PROPERTY				CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define OBSOLETE_IOCTL_STORAGE_RESET_BUS			CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE 		CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

// ntddvol.h
#define IOCTL_VOLUME_BASE	((ULONG) 'V')
#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS		CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE		CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_ONLINE 						CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_VOLUME_OFFLINE						CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_VOLUME_IS_OFFLINE 					CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_IS_IO_CAPABLE					CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_QUERY_FAILOVER_SET 			CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_QUERY_VOLUME_NUMBER			CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL			CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL			CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)

#else 	// (VER_PRODUCTID < 2195)
#include 
#include 
#include 
#include 

#define FT_SECONDARY_READ_ALT						 CTL_CODE(FTTYPE, 4, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define FT_PRIMARY_READ_ALT 						 CTL_CODE(FTTYPE, 5, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)

#endif	// (VER_PRODUCTID < 2195)

#if (VER_PRODUCT_ID < 2600)
//
// imports from WinXP DDK
//

// mountmgr.h
#define IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH		CTL_CODE(MOUNTMGRCONTROLTYPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATHS		CTL_CODE(MOUNTMGRCONTROLTYPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)

// mountdev.h
#define IOCTL_MOUNTDEV_QUERY_STABLE_GUID			CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)

// ntdddisk.h
#define IOCTL_DISK_PERFORMANCE_OFF					CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS)
/*
#define IOCTL_DISK_GET_PARTITION_INFO_EX			CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
*/
#define IOCTL_DISK_SET_PARTITION_INFO_EX			CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX				CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX				CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_CREATE_DISK						CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
/*
#define IOCTL_DISK_GET_LENGTH_INFO					CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
*/
#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX			CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_GET_WRITE_CACHE_STATE			CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_UPDATE_PROPERTIES				CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS)

// ntddstor.h
#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER		CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_HOTPLUG_INFO				CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_SET_HOTPLUG_INFO				CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_STORAGE_BREAK_RESERVATION 			CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)

// ntddvol.h
#define IOCTL_VOLUME_IS_PARTITION					CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_READ_PLEX						CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
#define IOCTL_VOLUME_IS_CLUSTERED					CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_SET_GPT_ATTRIBUTES 			CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_GET_GPT_ATTRIBUTES 			CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)

#endif	// (VER_PRODUCTID < 2600)

#define CASE_RETURN_STR(s)	case s: return #s

PCSTR
IoControlCodeToStr(
	ULONG ctrl_code)
{
	switch (ctrl_code) {
	//
	// VDK control codes
	//
	CASE_RETURN_STR( IOCTL_VDK_GET_VERSION );
	CASE_RETURN_STR( IOCTL_VDK_OPEN_FILE );
	CASE_RETURN_STR( IOCTL_VDK_UPDATE_DEVICE );
	CASE_RETURN_STR( IOCTL_VDK_CLOSE_FILE );
	CASE_RETURN_STR( IOCTL_VDK_QUERY_FILE_SIZE );
	CASE_RETURN_STR( IOCTL_VDK_QUERY_FILE );
	CASE_RETURN_STR( IOCTL_VDK_NUMBER_OF_PARTS );
	CASE_RETURN_STR( IOCTL_VDK_CREATE_DISK );
	CASE_RETURN_STR( IOCTL_VDK_DELETE_DISK );
	CASE_RETURN_STR( IOCTL_VDK_NOTIFY_DISMOUNT );
	CASE_RETURN_STR( IOCTL_VDK_DRIVER_INFO );
	CASE_RETURN_STR( IOCTL_VDK_DEVICE_INFO );
	CASE_RETURN_STR( IOCTL_VDK_DEBUG_TRACE );

	//
	// Standard control codes
	//
	// mountmgr.h
	CASE_RETURN_STR( IOCTL_MOUNTMGR_CREATE_POINT );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_DELETE_POINTS );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_QUERY_POINTS );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_CHANGE_NOTIFY );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH );
	CASE_RETURN_STR( IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATHS );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_QUERY_DEVICE_NAME );

	// mountdev.h
	CASE_RETURN_STR( IOCTL_MOUNTDEV_QUERY_UNIQUE_ID );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_LINK_CREATED );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_LINK_DELETED );
	CASE_RETURN_STR( IOCTL_MOUNTDEV_QUERY_STABLE_GUID );

	// ntdddisk.h
	CASE_RETURN_STR( IOCTL_DISK_GET_DRIVE_GEOMETRY );
	CASE_RETURN_STR( IOCTL_DISK_GET_PARTITION_INFO );
	CASE_RETURN_STR( IOCTL_DISK_SET_PARTITION_INFO );
	CASE_RETURN_STR( IOCTL_DISK_GET_DRIVE_LAYOUT );
	CASE_RETURN_STR( IOCTL_DISK_SET_DRIVE_LAYOUT );
	CASE_RETURN_STR( IOCTL_DISK_VERIFY );
	CASE_RETURN_STR( IOCTL_DISK_FORMAT_TRACKS );
	CASE_RETURN_STR( IOCTL_DISK_REASSIGN_BLOCKS );
	CASE_RETURN_STR( IOCTL_DISK_PERFORMANCE );
	CASE_RETURN_STR( IOCTL_DISK_IS_WRITABLE );
	CASE_RETURN_STR( IOCTL_DISK_LOGGING );
	CASE_RETURN_STR( IOCTL_DISK_FORMAT_TRACKS_EX );
	CASE_RETURN_STR( IOCTL_DISK_HISTOGRAM_STRUCTURE );
	CASE_RETURN_STR( IOCTL_DISK_HISTOGRAM_DATA );
	CASE_RETURN_STR( IOCTL_DISK_HISTOGRAM_RESET );
	CASE_RETURN_STR( IOCTL_DISK_REQUEST_STRUCTURE );
	CASE_RETURN_STR( IOCTL_DISK_REQUEST_DATA );
	CASE_RETURN_STR( IOCTL_DISK_PERFORMANCE_OFF );
	CASE_RETURN_STR( IOCTL_DISK_CONTROLLER_NUMBER );
	CASE_RETURN_STR( SMART_GET_VERSION );
	CASE_RETURN_STR( SMART_SEND_DRIVE_COMMAND );
	CASE_RETURN_STR( SMART_RCV_DRIVE_DATA );
	CASE_RETURN_STR( IOCTL_DISK_GET_PARTITION_INFO_EX );
	CASE_RETURN_STR( IOCTL_DISK_SET_PARTITION_INFO_EX );
	CASE_RETURN_STR( IOCTL_DISK_GET_DRIVE_LAYOUT_EX );
	CASE_RETURN_STR( IOCTL_DISK_SET_DRIVE_LAYOUT_EX );
	CASE_RETURN_STR( IOCTL_DISK_CREATE_DISK );
	CASE_RETURN_STR( IOCTL_DISK_GET_LENGTH_INFO );
	CASE_RETURN_STR( IOCTL_DISK_GET_DRIVE_GEOMETRY_EX );
	CASE_RETURN_STR( IOCTL_DISK_UPDATE_DRIVE_SIZE );
	CASE_RETURN_STR( IOCTL_DISK_GROW_PARTITION );
	CASE_RETURN_STR( IOCTL_DISK_GET_CACHE_INFORMATION );
	CASE_RETURN_STR( IOCTL_DISK_SET_CACHE_INFORMATION );
	CASE_RETURN_STR( IOCTL_DISK_GET_WRITE_CACHE_STATE );
	CASE_RETURN_STR( IOCTL_DISK_DELETE_DRIVE_LAYOUT );
	CASE_RETURN_STR( IOCTL_DISK_UPDATE_PROPERTIES );
	CASE_RETURN_STR( IOCTL_DISK_FORMAT_DRIVE );
	CASE_RETURN_STR( IOCTL_DISK_SENSE_DEVICE );
	CASE_RETURN_STR( IOCTL_DISK_INTERNAL_SET_VERIFY );
	CASE_RETURN_STR( IOCTL_DISK_INTERNAL_CLEAR_VERIFY );
	CASE_RETURN_STR( IOCTL_DISK_INTERNAL_SET_NOTIFY );
	CASE_RETURN_STR( IOCTL_DISK_CHECK_VERIFY );
	CASE_RETURN_STR( IOCTL_DISK_MEDIA_REMOVAL );
	CASE_RETURN_STR( IOCTL_DISK_EJECT_MEDIA );
	CASE_RETURN_STR( IOCTL_DISK_LOAD_MEDIA );
	CASE_RETURN_STR( IOCTL_DISK_RESERVE );
	CASE_RETURN_STR( IOCTL_DISK_RELEASE );
	CASE_RETURN_STR( IOCTL_DISK_FIND_NEW_DEVICES );
	CASE_RETURN_STR( IOCTL_DISK_GET_MEDIA_TYPES );
	CASE_RETURN_STR( IOCTL_DISK_SIMBAD );

	// ntddft.h
	CASE_RETURN_STR( FT_INITIALIZE_SET );
	CASE_RETURN_STR( FT_REGENERATE );
	CASE_RETURN_STR( FT_CONFIGURE );
	CASE_RETURN_STR( FT_VERIFY );
	CASE_RETURN_STR( FT_SECONDARY_READ );
	CASE_RETURN_STR( FT_PRIMARY_READ );
	CASE_RETURN_STR( FT_BALANCED_READ_MODE );
	CASE_RETURN_STR( FT_SYNC_REDUNDANT_COPY );
	CASE_RETURN_STR( FT_SEQUENTIAL_WRITE_MODE );
	CASE_RETURN_STR( FT_PARALLEL_WRITE_MODE );
	CASE_RETURN_STR( FT_QUERY_SET_STATE );
	CASE_RETURN_STR( FT_CLUSTER_SET_MEMBER_STATE );
	CASE_RETURN_STR( FT_CLUSTER_GET_MEMBER_STATE );

	// ntddft2.h
	CASE_RETURN_STR( FT_CREATE_LOGICAL_DISK );
	CASE_RETURN_STR( FT_BREAK_LOGICAL_DISK );
	CASE_RETURN_STR( FT_ENUMERATE_LOGICAL_DISKS );
	CASE_RETURN_STR( FT_QUERY_LOGICAL_DISK_INFORMATION );
	CASE_RETURN_STR( FT_ORPHAN_LOGICAL_DISK_MEMBER );
	CASE_RETURN_STR( FT_REPLACE_LOGICAL_DISK_MEMBER );
	CASE_RETURN_STR( FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK );
	CASE_RETURN_STR( FT_INITIALIZE_LOGICAL_DISK );
	CASE_RETURN_STR( FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK );
	CASE_RETURN_STR( FT_CHECK_IO );
	CASE_RETURN_STR( FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK );
	CASE_RETURN_STR( FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION );
	CASE_RETURN_STR( FT_CHANGE_NOTIFY );
	CASE_RETURN_STR( FT_STOP_SYNC_OPERATIONS );
	CASE_RETURN_STR( FT_QUERY_LOGICAL_DISK_ID );
	CASE_RETURN_STR( FT_CREATE_PARTITION_LOGICAL_DISK );

	// ntddstor.h
	CASE_RETURN_STR( IOCTL_STORAGE_CHECK_VERIFY );
	CASE_RETURN_STR( IOCTL_STORAGE_CHECK_VERIFY2 );
	CASE_RETURN_STR( IOCTL_STORAGE_MEDIA_REMOVAL );
	CASE_RETURN_STR( IOCTL_STORAGE_EJECT_MEDIA );
	CASE_RETURN_STR( IOCTL_STORAGE_LOAD_MEDIA );
	CASE_RETURN_STR( IOCTL_STORAGE_LOAD_MEDIA2 );
	CASE_RETURN_STR( IOCTL_STORAGE_RESERVE );
	CASE_RETURN_STR( IOCTL_STORAGE_RELEASE );
	CASE_RETURN_STR( IOCTL_STORAGE_FIND_NEW_DEVICES );
	CASE_RETURN_STR( IOCTL_STORAGE_EJECTION_CONTROL );
	CASE_RETURN_STR( IOCTL_STORAGE_MCN_CONTROL );
	CASE_RETURN_STR( IOCTL_STORAGE_GET_MEDIA_TYPES );
	CASE_RETURN_STR( IOCTL_STORAGE_GET_MEDIA_TYPES_EX );
	CASE_RETURN_STR( IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER );
	CASE_RETURN_STR( IOCTL_STORAGE_GET_HOTPLUG_INFO );
	CASE_RETURN_STR( IOCTL_STORAGE_SET_HOTPLUG_INFO );
	CASE_RETURN_STR( IOCTL_STORAGE_RESET_BUS );
	CASE_RETURN_STR( IOCTL_STORAGE_RESET_DEVICE );
	CASE_RETURN_STR( IOCTL_STORAGE_BREAK_RESERVATION );
	CASE_RETURN_STR( IOCTL_STORAGE_GET_DEVICE_NUMBER );
	CASE_RETURN_STR( IOCTL_STORAGE_PREDICT_FAILURE );
	CASE_RETURN_STR( IOCTL_STORAGE_QUERY_PROPERTY );
	CASE_RETURN_STR( OBSOLETE_IOCTL_STORAGE_RESET_BUS );
	CASE_RETURN_STR( OBSOLETE_IOCTL_STORAGE_RESET_DEVICE );

	// ntddvol.h
	CASE_RETURN_STR( IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS );
	CASE_RETURN_STR( IOCTL_VOLUME_IS_CLUSTERED );
	CASE_RETURN_STR( IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE );
	CASE_RETURN_STR( IOCTL_VOLUME_ONLINE );
	CASE_RETURN_STR( IOCTL_VOLUME_OFFLINE );
	CASE_RETURN_STR( IOCTL_VOLUME_IS_OFFLINE );
	CASE_RETURN_STR( IOCTL_VOLUME_IS_IO_CAPABLE );
	CASE_RETURN_STR( IOCTL_VOLUME_QUERY_FAILOVER_SET );
	CASE_RETURN_STR( IOCTL_VOLUME_QUERY_VOLUME_NUMBER );
	CASE_RETURN_STR( IOCTL_VOLUME_LOGICAL_TO_PHYSICAL );
	CASE_RETURN_STR( IOCTL_VOLUME_PHYSICAL_TO_LOGICAL );
	CASE_RETURN_STR( IOCTL_VOLUME_IS_PARTITION );
	CASE_RETURN_STR( IOCTL_VOLUME_READ_PLEX );
	CASE_RETURN_STR( IOCTL_VOLUME_SET_GPT_ATTRIBUTES );
	CASE_RETURN_STR( IOCTL_VOLUME_GET_GPT_ATTRIBUTES );

	default:	return NULL;
	}
}


#if (VER_PRODUCTBUILD < 2195)
//
// from new 
//
#define FACILITY_USB_ERROR_CODE 		 		0x10
#define FACILITY_TERMINAL_SERVER		 		0xA
#define FACILITY_HID_ERROR_CODE 		 		0x11
#define FACILITY_FIREWIRE_ERROR_CODE	 		0x12
#define FACILITY_DEBUGGER				 		0x1
#define FACILITY_CLUSTER_ERROR_CODE 	 		0x13
#define FACILITY_ACPI_ERROR_CODE		 		0x14
#define STATUS_RESOURCE_REQUIREMENTS_CHANGED	((NTSTATUS)0x00000119L)
#define STATUS_TRANSLATION_COMPLETE 			((NTSTATUS)0x00000120L)
#define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY	((NTSTATUS)0x00000121L)
#define DBG_EXCEPTION_HANDLED					((NTSTATUS)0x00010001L)
#define DBG_CONTINUE							((NTSTATUS)0x00010002L)
#define STATUS_ARBITRATION_UNHANDLED			((NTSTATUS)0x40000026L)
#define STATUS_CARDBUS_NOT_SUPPORTED			((NTSTATUS)0x40000027L)
#define STATUS_WX86_CREATEWX86TIB				((NTSTATUS)0x40000028L)
#define STATUS_MP_PROCESSOR_MISMATCH			((NTSTATUS)0x40000029L)
#define DBG_REPLY_LATER 						((NTSTATUS)0x40010001L)
#define DBG_UNABLE_TO_PROVIDE_HANDLE			((NTSTATUS)0x40010002L)
#define DBG_TERMINATE_THREAD					((NTSTATUS)0x40010003L)
#define DBG_TERMINATE_PROCESS					((NTSTATUS)0x40010004L)
#define DBG_CONTROL_C							((NTSTATUS)0x40010005L)
#define DBG_PRINTEXCEPTION_C					((NTSTATUS)0x40010006L)
#define DBG_RIPEXCEPTION						((NTSTATUS)0x40010007L)
#define DBG_CONTROL_BREAK						((NTSTATUS)0x40010008L)
#define DBG_EXCEPTION_NOT_HANDLED				((NTSTATUS)0x80010001L)
#define STATUS_VALIDATE_CONTINUE				((NTSTATUS)0xC0000271L)
#define STATUS_NO_MATCH 						((NTSTATUS)0xC0000272L)
#define STATUS_NO_MORE_MATCHES					((NTSTATUS)0xC0000273L)
#define STATUS_NOT_A_REPARSE_POINT				((NTSTATUS)0xC0000275L)
#define STATUS_IO_REPARSE_TAG_INVALID			((NTSTATUS)0xC0000276L)
#define STATUS_IO_REPARSE_TAG_MISMATCH			((NTSTATUS)0xC0000277L)
#define STATUS_IO_REPARSE_DATA_INVALID			((NTSTATUS)0xC0000278L)
#define STATUS_IO_REPARSE_TAG_NOT_HANDLED		((NTSTATUS)0xC0000279L)
#define STATUS_REPARSE_POINT_NOT_RESOLVED		((NTSTATUS)0xC0000280L)
#define STATUS_DIRECTORY_IS_A_REPARSE_POINT		((NTSTATUS)0xC0000281L)
#define STATUS_RANGE_LIST_CONFLICT				((NTSTATUS)0xC0000282L)
#define STATUS_SOURCE_ELEMENT_EMPTY 			((NTSTATUS)0xC0000283L)
#define STATUS_DESTINATION_ELEMENT_FULL 		((NTSTATUS)0xC0000284L)
#define STATUS_ILLEGAL_ELEMENT_ADDRESS			((NTSTATUS)0xC0000285L)
#define STATUS_MAGAZINE_NOT_PRESENT 			((NTSTATUS)0xC0000286L)
#define STATUS_REINITIALIZATION_NEEDED			((NTSTATUS)0xC0000287L)
#define STATUS_DEVICE_REQUIRES_CLEANING 		((NTSTATUS)0x80000288L)
#define STATUS_DEVICE_DOOR_OPEN 				((NTSTATUS)0x80000289L)
#define STATUS_ENCRYPTION_FAILED				((NTSTATUS)0xC000028AL)
#define STATUS_DECRYPTION_FAILED				((NTSTATUS)0xC000028BL)
#define STATUS_RANGE_NOT_FOUND					((NTSTATUS)0xC000028CL)
#define STATUS_NO_RECOVERY_POLICY				((NTSTATUS)0xC000028DL)
#define STATUS_NO_EFS							((NTSTATUS)0xC000028EL)
#define STATUS_WRONG_EFS						((NTSTATUS)0xC000028FL)
#define STATUS_NO_USER_KEYS 					((NTSTATUS)0xC0000290L)
#define STATUS_FILE_NOT_ENCRYPTED				((NTSTATUS)0xC0000291L)
#define STATUS_NOT_EXPORT_FORMAT				((NTSTATUS)0xC0000292L)
#define STATUS_FILE_ENCRYPTED					((NTSTATUS)0xC0000293L)
#define STATUS_WAKE_SYSTEM						((NTSTATUS)0x40000294L)
#define STATUS_WMI_GUID_NOT_FOUND				((NTSTATUS)0xC0000295L)
#define STATUS_WMI_INSTANCE_NOT_FOUND			((NTSTATUS)0xC0000296L)
#define STATUS_WMI_ITEMID_NOT_FOUND 			((NTSTATUS)0xC0000297L)
#define STATUS_WMI_TRY_AGAIN					((NTSTATUS)0xC0000298L)
#define STATUS_SHARED_POLICY					((NTSTATUS)0xC0000299L)
#define STATUS_POLICY_OBJECT_NOT_FOUND			((NTSTATUS)0xC000029AL)
#define STATUS_POLICY_ONLY_IN_DS				((NTSTATUS)0xC000029BL)
#define STATUS_VOLUME_NOT_UPGRADED				((NTSTATUS)0xC000029CL)
#define STATUS_REMOTE_STORAGE_NOT_ACTIVE		((NTSTATUS)0xC000029DL)
#define STATUS_REMOTE_STORAGE_MEDIA_ERROR		((NTSTATUS)0xC000029EL)
#define STATUS_NO_TRACKING_SERVICE				((NTSTATUS)0xC000029FL)
#define STATUS_SERVER_SID_MISMATCH				((NTSTATUS)0xC00002A0L)
#define STATUS_DS_NO_ATTRIBUTE_OR_VALUE 		((NTSTATUS)0xC00002A1L)
#define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX		((NTSTATUS)0xC00002A2L)
#define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED		((NTSTATUS)0xC00002A3L)
#define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS		((NTSTATUS)0xC00002A4L)
#define STATUS_DS_BUSY							((NTSTATUS)0xC00002A5L)
#define STATUS_DS_UNAVAILABLE					((NTSTATUS)0xC00002A6L)
#define STATUS_DS_NO_RIDS_ALLOCATED 			((NTSTATUS)0xC00002A7L)
#define STATUS_DS_NO_MORE_RIDS					((NTSTATUS)0xC00002A8L)
#define STATUS_DS_INCORRECT_ROLE_OWNER			((NTSTATUS)0xC00002A9L)
#define STATUS_DS_RIDMGR_INIT_ERROR 			((NTSTATUS)0xC00002AAL)
#define STATUS_DS_OBJ_CLASS_VIOLATION			((NTSTATUS)0xC00002ABL)
#define STATUS_DS_CANT_ON_NON_LEAF				((NTSTATUS)0xC00002ACL)
#define STATUS_DS_CANT_ON_RDN					((NTSTATUS)0xC00002ADL)
#define STATUS_DS_CANT_MOD_OBJ_CLASS			((NTSTATUS)0xC00002AEL)
#define STATUS_DS_CROSS_DOM_MOVE_FAILED 		((NTSTATUS)0xC00002AFL)
#define STATUS_DS_GC_NOT_AVAILABLE				((NTSTATUS)0xC00002B0L)
#define STATUS_DIRECTORY_SERVICE_REQUIRED		((NTSTATUS)0xC00002B1L)
#define STATUS_REPARSE_ATTRIBUTE_CONFLICT		((NTSTATUS)0xC00002B2L)
#define STATUS_CANT_ENABLE_DENY_ONLY			((NTSTATUS)0xC00002B3L)
#define STATUS_FLOAT_MULTIPLE_FAULTS			((NTSTATUS)0xC00002B4L)
#define STATUS_FLOAT_MULTIPLE_TRAPS 			((NTSTATUS)0xC00002B5L)
#define STATUS_DEVICE_REMOVED					((NTSTATUS)0xC00002B6L)
#define STATUS_JOURNAL_DELETE_IN_PROGRESS		((NTSTATUS)0xC00002B7L)
#define STATUS_JOURNAL_NOT_ACTIVE				((NTSTATUS)0xC00002B8L)
#define STATUS_NOINTERFACE						((NTSTATUS)0xC00002B9L)
#define STATUS_DS_ADMIN_LIMIT_EXCEEDED			((NTSTATUS)0xC00002C1L)
#define STATUS_DRIVER_FAILED_SLEEP				((NTSTATUS)0xC00002C2L)
#define STATUS_MUTUAL_AUTHENTICATION_FAILED		((NTSTATUS)0xC00002C3L)
#define STATUS_CORRUPT_SYSTEM_FILE				((NTSTATUS)0xC00002C4L)
#define STATUS_DATATYPE_MISALIGNMENT_ERROR		((NTSTATUS)0xC00002C5L)
#define STATUS_WMI_READ_ONLY					((NTSTATUS)0xC00002C6L)
#define STATUS_WMI_SET_FAILURE					((NTSTATUS)0xC00002C7L)
#define STATUS_COMMITMENT_MINIMUM				((NTSTATUS)0xC00002C8L)
#define STATUS_REG_NAT_CONSUMPTION				((NTSTATUS)0xC00002C9L)
#define STATUS_TRANSPORT_FULL					((NTSTATUS)0xC00002CAL)
#define STATUS_DS_SAM_INIT_FAILURE				((NTSTATUS)0xC00002CBL)
#define STATUS_ONLY_IF_CONNECTED				((NTSTATUS)0xC00002CCL)
#define STATUS_DS_SENSITIVE_GROUP_VIOLATION		((NTSTATUS)0xC00002CDL)
#define STATUS_PNP_RESTART_ENUMERATION			((NTSTATUS)0xC00002CEL)
#define STATUS_JOURNAL_ENTRY_DELETED			((NTSTATUS)0xC00002CFL)
#define STATUS_DS_CANT_MOD_PRIMARYGROUPID		((NTSTATUS)0xC00002D0L)
#define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE		((NTSTATUS)0xC00002D1L)
#define STATUS_PNP_REBOOT_REQUIRED				((NTSTATUS)0xC00002D2L)
#define STATUS_POWER_STATE_INVALID				((NTSTATUS)0xC00002D3L)
#define STATUS_DS_INVALID_GROUP_TYPE			((NTSTATUS)0xC00002D4L)
#define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN	((NTSTATUS)0xC00002D5L)
#define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN	((NTSTATUS)0xC00002D6L)
#define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER	((NTSTATUS)0xC00002D7L)
#define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER	((NTSTATUS)0xC00002D8L)
#define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER	((NTSTATUS)0xC00002D9L)
#define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER	((NTSTATUS)0xC00002DAL)
#define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER	((NTSTATUS)0xC00002DBL)
#define STATUS_DS_HAVE_PRIMARY_MEMBERS			((NTSTATUS)0xC00002DCL)
#define STATUS_WMI_NOT_SUPPORTED				((NTSTATUS)0xC00002DDL)
#define STATUS_INSUFFICIENT_POWER				((NTSTATUS)0xC00002DEL)
#define STATUS_SAM_NEED_BOOTKEY_PASSWORD		((NTSTATUS)0xC00002DFL)
#define STATUS_SAM_NEED_BOOTKEY_FLOPPY			((NTSTATUS)0xC00002E0L)
#define STATUS_DS_CANT_START					((NTSTATUS)0xC00002E1L)
#define STATUS_DS_INIT_FAILURE					((NTSTATUS)0xC00002E2L)
#define STATUS_SAM_INIT_FAILURE 				((NTSTATUS)0xC00002E3L)
#define STATUS_DS_GC_REQUIRED					((NTSTATUS)0xC00002E4L)
#define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY	((NTSTATUS)0xC00002E5L)
#define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS	((NTSTATUS)0xC00002E6L)
#define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED	((NTSTATUS)0xC00002E7L)
#define STATUS_MULTIPLE_FAULT_VIOLATION 		((NTSTATUS)0xC00002E8L)
#define STATUS_NOT_SUPPORTED_ON_SBS 			((NTSTATUS)0xC0000300L)
#define DBG_NO_STATE_CHANGE 					((NTSTATUS)0xC0010001L)
#define DBG_APP_NOT_IDLE						((NTSTATUS)0xC0010002L)
#define RPC_NT_PIPE_CLOSED						((NTSTATUS)0xC003005FL)
#define RPC_NT_PIPE_DISCIPLINE_ERROR			((NTSTATUS)0xC0030060L)
#define RPC_NT_PIPE_EMPTY						((NTSTATUS)0xC0030061L)
#define RPC_NT_INVALID_ASYNC_HANDLE 			((NTSTATUS)0xC0020062L)
#define RPC_NT_INVALID_ASYNC_CALL				((NTSTATUS)0xC0020063L)
#define STATUS_ACPI_INVALID_OPCODE				((NTSTATUS)0xC0140001L)
#define STATUS_ACPI_STACK_OVERFLOW				((NTSTATUS)0xC0140002L)
#define STATUS_ACPI_ASSERT_FAILED				((NTSTATUS)0xC0140003L)
#define STATUS_ACPI_INVALID_INDEX				((NTSTATUS)0xC0140004L)
#define STATUS_ACPI_INVALID_ARGUMENT			((NTSTATUS)0xC0140005L)
#define STATUS_ACPI_FATAL						((NTSTATUS)0xC0140006L)
#define STATUS_ACPI_INVALID_SUPERNAME			((NTSTATUS)0xC0140007L)
#define STATUS_ACPI_INVALID_ARGTYPE 			((NTSTATUS)0xC0140008L)
#define STATUS_ACPI_INVALID_OBJTYPE 			((NTSTATUS)0xC0140009L)
#define STATUS_ACPI_INVALID_TARGETTYPE			((NTSTATUS)0xC014000AL)
#define STATUS_ACPI_INCORRECT_ARGUMENT_COUNT	((NTSTATUS)0xC014000BL)
#define STATUS_ACPI_ADDRESS_NOT_MAPPED			((NTSTATUS)0xC014000CL)
#define STATUS_ACPI_INVALID_EVENTTYPE			((NTSTATUS)0xC014000DL)
#define STATUS_ACPI_HANDLER_COLLISION			((NTSTATUS)0xC014000EL)
#define STATUS_ACPI_INVALID_DATA				((NTSTATUS)0xC014000FL)
#define STATUS_ACPI_INVALID_REGION				((NTSTATUS)0xC0140010L)
#define STATUS_ACPI_INVALID_ACCESS_SIZE 		((NTSTATUS)0xC0140011L)
#define STATUS_ACPI_ACQUIRE_GLOBAL_LOCK 		((NTSTATUS)0xC0140012L)
#define STATUS_ACPI_ALREADY_INITIALIZED 		((NTSTATUS)0xC0140013L)
#define STATUS_ACPI_NOT_INITIALIZED 			((NTSTATUS)0xC0140014L)
#define STATUS_ACPI_INVALID_MUTEX_LEVEL 		((NTSTATUS)0xC0140015L)
#define STATUS_ACPI_MUTEX_NOT_OWNED 			((NTSTATUS)0xC0140016L)
#define STATUS_ACPI_MUTEX_NOT_OWNER 			((NTSTATUS)0xC0140017L)
#define STATUS_ACPI_RS_ACCESS					((NTSTATUS)0xC0140018L)
#define STATUS_ACPI_INVALID_TABLE				((NTSTATUS)0xC0140019L)
#define STATUS_ACPI_REG_HANDLER_FAILED			((NTSTATUS)0xC0140020L)
#define STATUS_ACPI_POWER_REQUEST_FAILED		((NTSTATUS)0xC0140021L)
#define STATUS_CTX_WINSTATION_NAME_INVALID		((NTSTATUS)0xC00A0001L)
#define STATUS_CTX_INVALID_PD					((NTSTATUS)0xC00A0002L)
#define STATUS_CTX_PD_NOT_FOUND 				((NTSTATUS)0xC00A0003L)
#define STATUS_CTX_CDM_CONNECT					((NTSTATUS)0x400A0004L)
#define STATUS_CTX_CDM_DISCONNECT				((NTSTATUS)0x400A0005L)
#define STATUS_CTX_CLOSE_PENDING				((NTSTATUS)0xC00A0006L)
#define STATUS_CTX_NO_OUTBUF					((NTSTATUS)0xC00A0007L)
#define STATUS_CTX_MODEM_INF_NOT_FOUND			((NTSTATUS)0xC00A0008L)
#define STATUS_CTX_INVALID_MODEMNAME			((NTSTATUS)0xC00A0009L)
#define STATUS_CTX_RESPONSE_ERROR				((NTSTATUS)0xC00A000AL)
#define STATUS_CTX_MODEM_RESPONSE_TIMEOUT		((NTSTATUS)0xC00A000BL)
#define STATUS_CTX_MODEM_RESPONSE_NO_CARRIER	((NTSTATUS)0xC00A000CL)
#define STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE	((NTSTATUS)0xC00A000DL)
#define STATUS_CTX_MODEM_RESPONSE_BUSY			((NTSTATUS)0xC00A000EL)
#define STATUS_CTX_MODEM_RESPONSE_VOICE 		((NTSTATUS)0xC00A000FL)
#define STATUS_CTX_TD_ERROR 					((NTSTATUS)0xC00A0010L)
#define STATUS_CTX_LICENSE_CLIENT_INVALID		((NTSTATUS)0xC00A0012L)
#define STATUS_CTX_LICENSE_NOT_AVAILABLE		((NTSTATUS)0xC00A0013L)
#define STATUS_CTX_LICENSE_EXPIRED				((NTSTATUS)0xC00A0014L)
#define STATUS_CTX_WINSTATION_NOT_FOUND 		((NTSTATUS)0xC00A0015L)
#define STATUS_CTX_WINSTATION_NAME_COLLISION	((NTSTATUS)0xC00A0016L)
#define STATUS_CTX_WINSTATION_BUSY				((NTSTATUS)0xC00A0017L)
#define STATUS_CTX_BAD_VIDEO_MODE				((NTSTATUS)0xC00A0018L)
#define STATUS_CTX_GRAPHICS_INVALID 			((NTSTATUS)0xC00A0022L)
#define STATUS_CTX_NOT_CONSOLE					((NTSTATUS)0xC00A0024L)
#define STATUS_CTX_CLIENT_QUERY_TIMEOUT 		((NTSTATUS)0xC00A0026L)
#define STATUS_CTX_CONSOLE_DISCONNECT			((NTSTATUS)0xC00A0027L)
#define STATUS_CTX_CONSOLE_CONNECT				((NTSTATUS)0xC00A0028L)
#define STATUS_CTX_SHADOW_DENIED				((NTSTATUS)0xC00A002AL)
#define STATUS_CTX_WINSTATION_ACCESS_DENIED		((NTSTATUS)0xC00A002BL)
#define STATUS_CTX_INVALID_WD					((NTSTATUS)0xC00A002EL)
#define STATUS_CTX_WD_NOT_FOUND 				((NTSTATUS)0xC00A002FL)
#define STATUS_CTX_SHADOW_INVALID				((NTSTATUS)0xC00A0030L)
#define STATUS_CTX_SHADOW_DISABLED				((NTSTATUS)0xC00A0031L)
#define STATUS_RDP_PROTOCOL_ERROR				((NTSTATUS)0xC00A0032L)
#define STATUS_CTX_CLIENT_LICENSE_NOT_SET		((NTSTATUS)0xC00A0033L)
#define STATUS_CTX_CLIENT_LICENSE_IN_USE		((NTSTATUS)0xC00A0034L)
#define STATUS_PNP_BAD_MPS_TABLE				((NTSTATUS)0xC0040035L)
#define STATUS_PNP_TRANSLATION_FAILED	 		((NTSTATUS)0xC0040036L)
#define STATUS_PNP_IRQ_TRANSLATION_FAILED		((NTSTATUS)0xC0040037L)
#endif

#define CASE_RETURN_STR(s)	case s: return #s

PCSTR
VdkStatusStr(
	NTSTATUS status)
{
	switch (status) {
	CASE_RETURN_STR( STATUS_SUCCESS );
//	CASE_RETURN_STR( STATUS_WAIT_0 );
	CASE_RETURN_STR( STATUS_WAIT_1 );
	CASE_RETURN_STR( STATUS_WAIT_2 );
	CASE_RETURN_STR( STATUS_WAIT_3 );
	CASE_RETURN_STR( STATUS_WAIT_63 );
	CASE_RETURN_STR( STATUS_ABANDONED );
//	CASE_RETURN_STR( STATUS_ABANDONED_WAIT_0 );
	CASE_RETURN_STR( STATUS_ABANDONED_WAIT_63 );
	CASE_RETURN_STR( STATUS_USER_APC );
	CASE_RETURN_STR( STATUS_KERNEL_APC );
	CASE_RETURN_STR( STATUS_ALERTED );
	CASE_RETURN_STR( STATUS_TIMEOUT );
	CASE_RETURN_STR( STATUS_PENDING );
	CASE_RETURN_STR( STATUS_REPARSE );
	CASE_RETURN_STR( STATUS_MORE_ENTRIES );
	CASE_RETURN_STR( STATUS_NOT_ALL_ASSIGNED );
	CASE_RETURN_STR( STATUS_SOME_NOT_MAPPED );
	CASE_RETURN_STR( STATUS_OPLOCK_BREAK_IN_PROGRESS );
	CASE_RETURN_STR( STATUS_VOLUME_MOUNTED );
	CASE_RETURN_STR( STATUS_RXACT_COMMITTED );
	CASE_RETURN_STR( STATUS_NOTIFY_CLEANUP );
	CASE_RETURN_STR( STATUS_NOTIFY_ENUM_DIR );
	CASE_RETURN_STR( STATUS_NO_QUOTAS_FOR_ACCOUNT );
	CASE_RETURN_STR( STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED );
	CASE_RETURN_STR( STATUS_PAGE_FAULT_TRANSITION );
	CASE_RETURN_STR( STATUS_PAGE_FAULT_DEMAND_ZERO );
	CASE_RETURN_STR( STATUS_PAGE_FAULT_COPY_ON_WRITE );
	CASE_RETURN_STR( STATUS_PAGE_FAULT_GUARD_PAGE );
	CASE_RETURN_STR( STATUS_PAGE_FAULT_PAGING_FILE );
	CASE_RETURN_STR( STATUS_CACHE_PAGE_LOCKED );
	CASE_RETURN_STR( STATUS_CRASH_DUMP );
	CASE_RETURN_STR( STATUS_BUFFER_ALL_ZEROS );
	CASE_RETURN_STR( STATUS_REPARSE_OBJECT );
	CASE_RETURN_STR( STATUS_RESOURCE_REQUIREMENTS_CHANGED );
	CASE_RETURN_STR( STATUS_TRANSLATION_COMPLETE );
	CASE_RETURN_STR( STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY );
	CASE_RETURN_STR( DBG_EXCEPTION_HANDLED );
	CASE_RETURN_STR( DBG_CONTINUE );
	CASE_RETURN_STR( STATUS_OBJECT_NAME_EXISTS );
	CASE_RETURN_STR( STATUS_THREAD_WAS_SUSPENDED );
	CASE_RETURN_STR( STATUS_WORKING_SET_LIMIT_RANGE );
	CASE_RETURN_STR( STATUS_IMAGE_NOT_AT_BASE );
	CASE_RETURN_STR( STATUS_RXACT_STATE_CREATED );
	CASE_RETURN_STR( STATUS_SEGMENT_NOTIFICATION );
	CASE_RETURN_STR( STATUS_LOCAL_USER_SESSION_KEY );
	CASE_RETURN_STR( STATUS_BAD_CURRENT_DIRECTORY );
	CASE_RETURN_STR( STATUS_SERIAL_MORE_WRITES );
	CASE_RETURN_STR( STATUS_REGISTRY_RECOVERED );
	CASE_RETURN_STR( STATUS_FT_READ_RECOVERY_FROM_BACKUP );
	CASE_RETURN_STR( STATUS_FT_WRITE_RECOVERY );
	CASE_RETURN_STR( STATUS_SERIAL_COUNTER_TIMEOUT );
	CASE_RETURN_STR( STATUS_NULL_LM_PASSWORD );
	CASE_RETURN_STR( STATUS_IMAGE_MACHINE_TYPE_MISMATCH );
	CASE_RETURN_STR( STATUS_RECEIVE_PARTIAL );
	CASE_RETURN_STR( STATUS_RECEIVE_EXPEDITED );
	CASE_RETURN_STR( STATUS_RECEIVE_PARTIAL_EXPEDITED );
	CASE_RETURN_STR( STATUS_EVENT_DONE );
	CASE_RETURN_STR( STATUS_EVENT_PENDING );
	CASE_RETURN_STR( STATUS_CHECKING_FILE_SYSTEM );
	CASE_RETURN_STR( STATUS_FATAL_APP_EXIT );
	CASE_RETURN_STR( STATUS_PREDEFINED_HANDLE );
	CASE_RETURN_STR( STATUS_WAS_UNLOCKED );
	CASE_RETURN_STR( STATUS_SERVICE_NOTIFICATION );
	CASE_RETURN_STR( STATUS_WAS_LOCKED );
	CASE_RETURN_STR( STATUS_LOG_HARD_ERROR );
	CASE_RETURN_STR( STATUS_ALREADY_WIN32 );
	CASE_RETURN_STR( STATUS_WX86_UNSIMULATE );
	CASE_RETURN_STR( STATUS_WX86_CONTINUE );
	CASE_RETURN_STR( STATUS_WX86_SINGLE_STEP );
	CASE_RETURN_STR( STATUS_WX86_BREAKPOINT );
	CASE_RETURN_STR( STATUS_WX86_EXCEPTION_CONTINUE );
	CASE_RETURN_STR( STATUS_WX86_EXCEPTION_LASTCHANCE );
	CASE_RETURN_STR( STATUS_WX86_EXCEPTION_CHAIN );
	CASE_RETURN_STR( STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE );
	CASE_RETURN_STR( STATUS_NO_YIELD_PERFORMED );
	CASE_RETURN_STR( STATUS_TIMER_RESUME_IGNORED );
	CASE_RETURN_STR( STATUS_ARBITRATION_UNHANDLED );
	CASE_RETURN_STR( STATUS_CARDBUS_NOT_SUPPORTED );
	CASE_RETURN_STR( STATUS_WX86_CREATEWX86TIB );
	CASE_RETURN_STR( STATUS_MP_PROCESSOR_MISMATCH );
	CASE_RETURN_STR( DBG_REPLY_LATER );
	CASE_RETURN_STR( DBG_UNABLE_TO_PROVIDE_HANDLE );
	CASE_RETURN_STR( DBG_TERMINATE_THREAD );
	CASE_RETURN_STR( DBG_TERMINATE_PROCESS );
	CASE_RETURN_STR( DBG_CONTROL_C );
	CASE_RETURN_STR( DBG_PRINTEXCEPTION_C );
	CASE_RETURN_STR( DBG_RIPEXCEPTION );
	CASE_RETURN_STR( DBG_CONTROL_BREAK );
	CASE_RETURN_STR( STATUS_GUARD_PAGE_VIOLATION );
	CASE_RETURN_STR( STATUS_DATATYPE_MISALIGNMENT );
	CASE_RETURN_STR( STATUS_BREAKPOINT );
	CASE_RETURN_STR( STATUS_SINGLE_STEP );
	CASE_RETURN_STR( STATUS_BUFFER_OVERFLOW );
	CASE_RETURN_STR( STATUS_NO_MORE_FILES );
	CASE_RETURN_STR( STATUS_WAKE_SYSTEM_DEBUGGER );
	CASE_RETURN_STR( STATUS_HANDLES_CLOSED );
	CASE_RETURN_STR( STATUS_NO_INHERITANCE );
	CASE_RETURN_STR( STATUS_GUID_SUBSTITUTION_MADE );
	CASE_RETURN_STR( STATUS_PARTIAL_COPY );
	CASE_RETURN_STR( STATUS_DEVICE_PAPER_EMPTY );
	CASE_RETURN_STR( STATUS_DEVICE_POWERED_OFF );
	CASE_RETURN_STR( STATUS_DEVICE_OFF_LINE );
	CASE_RETURN_STR( STATUS_DEVICE_BUSY );
	CASE_RETURN_STR( STATUS_NO_MORE_EAS );
	CASE_RETURN_STR( STATUS_INVALID_EA_NAME );
	CASE_RETURN_STR( STATUS_EA_LIST_INCONSISTENT );
	CASE_RETURN_STR( STATUS_INVALID_EA_FLAG );
	CASE_RETURN_STR( STATUS_VERIFY_REQUIRED );
	CASE_RETURN_STR( STATUS_EXTRANEOUS_INFORMATION );
	CASE_RETURN_STR( STATUS_RXACT_COMMIT_NECESSARY );
	CASE_RETURN_STR( STATUS_NO_MORE_ENTRIES );
	CASE_RETURN_STR( STATUS_FILEMARK_DETECTED );
	CASE_RETURN_STR( STATUS_MEDIA_CHANGED );
	CASE_RETURN_STR( STATUS_BUS_RESET );
	CASE_RETURN_STR( STATUS_END_OF_MEDIA );
	CASE_RETURN_STR( STATUS_BEGINNING_OF_MEDIA );
	CASE_RETURN_STR( STATUS_MEDIA_CHECK );
	CASE_RETURN_STR( STATUS_SETMARK_DETECTED );
	CASE_RETURN_STR( STATUS_NO_DATA_DETECTED );
	CASE_RETURN_STR( STATUS_REDIRECTOR_HAS_OPEN_HANDLES );
	CASE_RETURN_STR( STATUS_SERVER_HAS_OPEN_HANDLES );
	CASE_RETURN_STR( STATUS_ALREADY_DISCONNECTED );
	CASE_RETURN_STR( STATUS_LONGJUMP );
	CASE_RETURN_STR( DBG_EXCEPTION_NOT_HANDLED );
	CASE_RETURN_STR( STATUS_UNSUCCESSFUL );
	CASE_RETURN_STR( STATUS_NOT_IMPLEMENTED );
	CASE_RETURN_STR( STATUS_INVALID_INFO_CLASS );
	CASE_RETURN_STR( STATUS_INFO_LENGTH_MISMATCH );
	CASE_RETURN_STR( STATUS_ACCESS_VIOLATION );
	CASE_RETURN_STR( STATUS_IN_PAGE_ERROR );
	CASE_RETURN_STR( STATUS_PAGEFILE_QUOTA );
	CASE_RETURN_STR( STATUS_INVALID_HANDLE );
	CASE_RETURN_STR( STATUS_BAD_INITIAL_STACK );
	CASE_RETURN_STR( STATUS_BAD_INITIAL_PC );
	CASE_RETURN_STR( STATUS_INVALID_CID );
	CASE_RETURN_STR( STATUS_TIMER_NOT_CANCELED );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER );
	CASE_RETURN_STR( STATUS_NO_SUCH_DEVICE );
	CASE_RETURN_STR( STATUS_NO_SUCH_FILE );
	CASE_RETURN_STR( STATUS_INVALID_DEVICE_REQUEST );
	CASE_RETURN_STR( STATUS_END_OF_FILE );
	CASE_RETURN_STR( STATUS_WRONG_VOLUME );
	CASE_RETURN_STR( STATUS_NO_MEDIA_IN_DEVICE );
	CASE_RETURN_STR( STATUS_UNRECOGNIZED_MEDIA );
	CASE_RETURN_STR( STATUS_NONEXISTENT_SECTOR );
	CASE_RETURN_STR( STATUS_MORE_PROCESSING_REQUIRED );
	CASE_RETURN_STR( STATUS_NO_MEMORY );
	CASE_RETURN_STR( STATUS_CONFLICTING_ADDRESSES );
	CASE_RETURN_STR( STATUS_NOT_MAPPED_VIEW );
	CASE_RETURN_STR( STATUS_UNABLE_TO_FREE_VM );
	CASE_RETURN_STR( STATUS_UNABLE_TO_DELETE_SECTION );
	CASE_RETURN_STR( STATUS_INVALID_SYSTEM_SERVICE );
	CASE_RETURN_STR( STATUS_ILLEGAL_INSTRUCTION );
	CASE_RETURN_STR( STATUS_INVALID_LOCK_SEQUENCE );
	CASE_RETURN_STR( STATUS_INVALID_VIEW_SIZE );
	CASE_RETURN_STR( STATUS_INVALID_FILE_FOR_SECTION );
	CASE_RETURN_STR( STATUS_ALREADY_COMMITTED );
	CASE_RETURN_STR( STATUS_ACCESS_DENIED );
	CASE_RETURN_STR( STATUS_BUFFER_TOO_SMALL );
	CASE_RETURN_STR( STATUS_OBJECT_TYPE_MISMATCH );
	CASE_RETURN_STR( STATUS_NONCONTINUABLE_EXCEPTION );
	CASE_RETURN_STR( STATUS_INVALID_DISPOSITION );
	CASE_RETURN_STR( STATUS_UNWIND );
	CASE_RETURN_STR( STATUS_BAD_STACK );
	CASE_RETURN_STR( STATUS_INVALID_UNWIND_TARGET );
	CASE_RETURN_STR( STATUS_NOT_LOCKED );
	CASE_RETURN_STR( STATUS_PARITY_ERROR );
	CASE_RETURN_STR( STATUS_UNABLE_TO_DECOMMIT_VM );
	CASE_RETURN_STR( STATUS_NOT_COMMITTED );
	CASE_RETURN_STR( STATUS_INVALID_PORT_ATTRIBUTES );
	CASE_RETURN_STR( STATUS_PORT_MESSAGE_TOO_LONG );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_MIX );
	CASE_RETURN_STR( STATUS_INVALID_QUOTA_LOWER );
	CASE_RETURN_STR( STATUS_DISK_CORRUPT_ERROR );
	CASE_RETURN_STR( STATUS_OBJECT_NAME_INVALID );
	CASE_RETURN_STR( STATUS_OBJECT_NAME_NOT_FOUND );
	CASE_RETURN_STR( STATUS_OBJECT_NAME_COLLISION );
	CASE_RETURN_STR( STATUS_PORT_DISCONNECTED );
	CASE_RETURN_STR( STATUS_DEVICE_ALREADY_ATTACHED );
	CASE_RETURN_STR( STATUS_OBJECT_PATH_INVALID );
	CASE_RETURN_STR( STATUS_OBJECT_PATH_NOT_FOUND );
	CASE_RETURN_STR( STATUS_OBJECT_PATH_SYNTAX_BAD );
	CASE_RETURN_STR( STATUS_DATA_OVERRUN );
	CASE_RETURN_STR( STATUS_DATA_LATE_ERROR );
	CASE_RETURN_STR( STATUS_DATA_ERROR );
	CASE_RETURN_STR( STATUS_CRC_ERROR );
	CASE_RETURN_STR( STATUS_SECTION_TOO_BIG );
	CASE_RETURN_STR( STATUS_PORT_CONNECTION_REFUSED );
	CASE_RETURN_STR( STATUS_INVALID_PORT_HANDLE );
	CASE_RETURN_STR( STATUS_SHARING_VIOLATION );
	CASE_RETURN_STR( STATUS_QUOTA_EXCEEDED );
	CASE_RETURN_STR( STATUS_INVALID_PAGE_PROTECTION );
	CASE_RETURN_STR( STATUS_MUTANT_NOT_OWNED );
	CASE_RETURN_STR( STATUS_SEMAPHORE_LIMIT_EXCEEDED );
	CASE_RETURN_STR( STATUS_PORT_ALREADY_SET );
	CASE_RETURN_STR( STATUS_SECTION_NOT_IMAGE );
	CASE_RETURN_STR( STATUS_SUSPEND_COUNT_EXCEEDED );
	CASE_RETURN_STR( STATUS_THREAD_IS_TERMINATING );
	CASE_RETURN_STR( STATUS_BAD_WORKING_SET_LIMIT );
	CASE_RETURN_STR( STATUS_INCOMPATIBLE_FILE_MAP );
	CASE_RETURN_STR( STATUS_SECTION_PROTECTION );
	CASE_RETURN_STR( STATUS_EAS_NOT_SUPPORTED );
	CASE_RETURN_STR( STATUS_EA_TOO_LARGE );
	CASE_RETURN_STR( STATUS_NONEXISTENT_EA_ENTRY );
	CASE_RETURN_STR( STATUS_NO_EAS_ON_FILE );
	CASE_RETURN_STR( STATUS_EA_CORRUPT_ERROR );
	CASE_RETURN_STR( STATUS_FILE_LOCK_CONFLICT );
	CASE_RETURN_STR( STATUS_LOCK_NOT_GRANTED );
	CASE_RETURN_STR( STATUS_DELETE_PENDING );
	CASE_RETURN_STR( STATUS_CTL_FILE_NOT_SUPPORTED );
	CASE_RETURN_STR( STATUS_UNKNOWN_REVISION );
	CASE_RETURN_STR( STATUS_REVISION_MISMATCH );
	CASE_RETURN_STR( STATUS_INVALID_OWNER );
	CASE_RETURN_STR( STATUS_INVALID_PRIMARY_GROUP );
	CASE_RETURN_STR( STATUS_NO_IMPERSONATION_TOKEN );
	CASE_RETURN_STR( STATUS_CANT_DISABLE_MANDATORY );
	CASE_RETURN_STR( STATUS_NO_LOGON_SERVERS );
	CASE_RETURN_STR( STATUS_NO_SUCH_LOGON_SESSION );
	CASE_RETURN_STR( STATUS_NO_SUCH_PRIVILEGE );
	CASE_RETURN_STR( STATUS_PRIVILEGE_NOT_HELD );
	CASE_RETURN_STR( STATUS_INVALID_ACCOUNT_NAME );
	CASE_RETURN_STR( STATUS_USER_EXISTS );
	CASE_RETURN_STR( STATUS_NO_SUCH_USER );
	CASE_RETURN_STR( STATUS_GROUP_EXISTS );
	CASE_RETURN_STR( STATUS_NO_SUCH_GROUP );
	CASE_RETURN_STR( STATUS_MEMBER_IN_GROUP );
	CASE_RETURN_STR( STATUS_MEMBER_NOT_IN_GROUP );
	CASE_RETURN_STR( STATUS_LAST_ADMIN );
	CASE_RETURN_STR( STATUS_WRONG_PASSWORD );
	CASE_RETURN_STR( STATUS_ILL_FORMED_PASSWORD );
	CASE_RETURN_STR( STATUS_PASSWORD_RESTRICTION );
	CASE_RETURN_STR( STATUS_LOGON_FAILURE );
	CASE_RETURN_STR( STATUS_ACCOUNT_RESTRICTION );
	CASE_RETURN_STR( STATUS_INVALID_LOGON_HOURS );
	CASE_RETURN_STR( STATUS_INVALID_WORKSTATION );
	CASE_RETURN_STR( STATUS_PASSWORD_EXPIRED );
	CASE_RETURN_STR( STATUS_ACCOUNT_DISABLED );
	CASE_RETURN_STR( STATUS_NONE_MAPPED );
	CASE_RETURN_STR( STATUS_TOO_MANY_LUIDS_REQUESTED );
	CASE_RETURN_STR( STATUS_LUIDS_EXHAUSTED );
	CASE_RETURN_STR( STATUS_INVALID_SUB_AUTHORITY );
	CASE_RETURN_STR( STATUS_INVALID_ACL );
	CASE_RETURN_STR( STATUS_INVALID_SID );
	CASE_RETURN_STR( STATUS_INVALID_SECURITY_DESCR );
	CASE_RETURN_STR( STATUS_PROCEDURE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_FORMAT );
	CASE_RETURN_STR( STATUS_NO_TOKEN );
	CASE_RETURN_STR( STATUS_BAD_INHERITANCE_ACL );
	CASE_RETURN_STR( STATUS_RANGE_NOT_LOCKED );
	CASE_RETURN_STR( STATUS_DISK_FULL );
	CASE_RETURN_STR( STATUS_SERVER_DISABLED );
	CASE_RETURN_STR( STATUS_SERVER_NOT_DISABLED );
	CASE_RETURN_STR( STATUS_TOO_MANY_GUIDS_REQUESTED );
	CASE_RETURN_STR( STATUS_GUIDS_EXHAUSTED );
	CASE_RETURN_STR( STATUS_INVALID_ID_AUTHORITY );
	CASE_RETURN_STR( STATUS_AGENTS_EXHAUSTED );
	CASE_RETURN_STR( STATUS_INVALID_VOLUME_LABEL );
	CASE_RETURN_STR( STATUS_SECTION_NOT_EXTENDED );
	CASE_RETURN_STR( STATUS_NOT_MAPPED_DATA );
	CASE_RETURN_STR( STATUS_RESOURCE_DATA_NOT_FOUND );
	CASE_RETURN_STR( STATUS_RESOURCE_TYPE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_RESOURCE_NAME_NOT_FOUND );
	CASE_RETURN_STR( STATUS_ARRAY_BOUNDS_EXCEEDED );
	CASE_RETURN_STR( STATUS_FLOAT_DENORMAL_OPERAND );
	CASE_RETURN_STR( STATUS_FLOAT_DIVIDE_BY_ZERO );
	CASE_RETURN_STR( STATUS_FLOAT_INEXACT_RESULT );
	CASE_RETURN_STR( STATUS_FLOAT_INVALID_OPERATION );
	CASE_RETURN_STR( STATUS_FLOAT_OVERFLOW );
	CASE_RETURN_STR( STATUS_FLOAT_STACK_CHECK );
	CASE_RETURN_STR( STATUS_FLOAT_UNDERFLOW );
	CASE_RETURN_STR( STATUS_INTEGER_DIVIDE_BY_ZERO );
	CASE_RETURN_STR( STATUS_INTEGER_OVERFLOW );
	CASE_RETURN_STR( STATUS_PRIVILEGED_INSTRUCTION );
	CASE_RETURN_STR( STATUS_TOO_MANY_PAGING_FILES );
	CASE_RETURN_STR( STATUS_FILE_INVALID );
	CASE_RETURN_STR( STATUS_ALLOTTED_SPACE_EXCEEDED );
	CASE_RETURN_STR( STATUS_INSUFFICIENT_RESOURCES );
	CASE_RETURN_STR( STATUS_DFS_EXIT_PATH_FOUND );
	CASE_RETURN_STR( STATUS_DEVICE_DATA_ERROR );
	CASE_RETURN_STR( STATUS_DEVICE_NOT_CONNECTED );
	CASE_RETURN_STR( STATUS_DEVICE_POWER_FAILURE );
	CASE_RETURN_STR( STATUS_FREE_VM_NOT_AT_BASE );
	CASE_RETURN_STR( STATUS_MEMORY_NOT_ALLOCATED );
	CASE_RETURN_STR( STATUS_WORKING_SET_QUOTA );
	CASE_RETURN_STR( STATUS_MEDIA_WRITE_PROTECTED );
	CASE_RETURN_STR( STATUS_DEVICE_NOT_READY );
	CASE_RETURN_STR( STATUS_INVALID_GROUP_ATTRIBUTES );
	CASE_RETURN_STR( STATUS_BAD_IMPERSONATION_LEVEL );
	CASE_RETURN_STR( STATUS_CANT_OPEN_ANONYMOUS );
	CASE_RETURN_STR( STATUS_BAD_VALIDATION_CLASS );
	CASE_RETURN_STR( STATUS_BAD_TOKEN_TYPE );
	CASE_RETURN_STR( STATUS_BAD_MASTER_BOOT_RECORD );
	CASE_RETURN_STR( STATUS_INSTRUCTION_MISALIGNMENT );
	CASE_RETURN_STR( STATUS_INSTANCE_NOT_AVAILABLE );
	CASE_RETURN_STR( STATUS_PIPE_NOT_AVAILABLE );
	CASE_RETURN_STR( STATUS_INVALID_PIPE_STATE );
	CASE_RETURN_STR( STATUS_PIPE_BUSY );
	CASE_RETURN_STR( STATUS_ILLEGAL_FUNCTION );
	CASE_RETURN_STR( STATUS_PIPE_DISCONNECTED );
	CASE_RETURN_STR( STATUS_PIPE_CLOSING );
	CASE_RETURN_STR( STATUS_PIPE_CONNECTED );
	CASE_RETURN_STR( STATUS_PIPE_LISTENING );
	CASE_RETURN_STR( STATUS_INVALID_READ_MODE );
	CASE_RETURN_STR( STATUS_IO_TIMEOUT );
	CASE_RETURN_STR( STATUS_FILE_FORCED_CLOSED );
	CASE_RETURN_STR( STATUS_PROFILING_NOT_STARTED );
	CASE_RETURN_STR( STATUS_PROFILING_NOT_STOPPED );
	CASE_RETURN_STR( STATUS_COULD_NOT_INTERPRET );
	CASE_RETURN_STR( STATUS_FILE_IS_A_DIRECTORY );
	CASE_RETURN_STR( STATUS_NOT_SUPPORTED );
	CASE_RETURN_STR( STATUS_REMOTE_NOT_LISTENING );
	CASE_RETURN_STR( STATUS_DUPLICATE_NAME );
	CASE_RETURN_STR( STATUS_BAD_NETWORK_PATH );
	CASE_RETURN_STR( STATUS_NETWORK_BUSY );
	CASE_RETURN_STR( STATUS_DEVICE_DOES_NOT_EXIST );
	CASE_RETURN_STR( STATUS_TOO_MANY_COMMANDS );
	CASE_RETURN_STR( STATUS_ADAPTER_HARDWARE_ERROR );
	CASE_RETURN_STR( STATUS_INVALID_NETWORK_RESPONSE );
	CASE_RETURN_STR( STATUS_UNEXPECTED_NETWORK_ERROR );
	CASE_RETURN_STR( STATUS_BAD_REMOTE_ADAPTER );
	CASE_RETURN_STR( STATUS_PRINT_QUEUE_FULL );
	CASE_RETURN_STR( STATUS_NO_SPOOL_SPACE );
	CASE_RETURN_STR( STATUS_PRINT_CANCELLED );
	CASE_RETURN_STR( STATUS_NETWORK_NAME_DELETED );
	CASE_RETURN_STR( STATUS_NETWORK_ACCESS_DENIED );
	CASE_RETURN_STR( STATUS_BAD_DEVICE_TYPE );
	CASE_RETURN_STR( STATUS_BAD_NETWORK_NAME );
	CASE_RETURN_STR( STATUS_TOO_MANY_NAMES );
	CASE_RETURN_STR( STATUS_TOO_MANY_SESSIONS );
	CASE_RETURN_STR( STATUS_SHARING_PAUSED );
	CASE_RETURN_STR( STATUS_REQUEST_NOT_ACCEPTED );
	CASE_RETURN_STR( STATUS_REDIRECTOR_PAUSED );
	CASE_RETURN_STR( STATUS_NET_WRITE_FAULT );
	CASE_RETURN_STR( STATUS_PROFILING_AT_LIMIT );
	CASE_RETURN_STR( STATUS_NOT_SAME_DEVICE );
	CASE_RETURN_STR( STATUS_FILE_RENAMED );
	CASE_RETURN_STR( STATUS_VIRTUAL_CIRCUIT_CLOSED );
	CASE_RETURN_STR( STATUS_NO_SECURITY_ON_OBJECT );
	CASE_RETURN_STR( STATUS_CANT_WAIT );
	CASE_RETURN_STR( STATUS_PIPE_EMPTY );
	CASE_RETURN_STR( STATUS_CANT_ACCESS_DOMAIN_INFO );
	CASE_RETURN_STR( STATUS_CANT_TERMINATE_SELF );
	CASE_RETURN_STR( STATUS_INVALID_SERVER_STATE );
	CASE_RETURN_STR( STATUS_INVALID_DOMAIN_STATE );
	CASE_RETURN_STR( STATUS_INVALID_DOMAIN_ROLE );
	CASE_RETURN_STR( STATUS_NO_SUCH_DOMAIN );
	CASE_RETURN_STR( STATUS_DOMAIN_EXISTS );
	CASE_RETURN_STR( STATUS_DOMAIN_LIMIT_EXCEEDED );
	CASE_RETURN_STR( STATUS_OPLOCK_NOT_GRANTED );
	CASE_RETURN_STR( STATUS_INVALID_OPLOCK_PROTOCOL );
	CASE_RETURN_STR( STATUS_INTERNAL_DB_CORRUPTION );
	CASE_RETURN_STR( STATUS_INTERNAL_ERROR );
	CASE_RETURN_STR( STATUS_GENERIC_NOT_MAPPED );
	CASE_RETURN_STR( STATUS_BAD_DESCRIPTOR_FORMAT );
	CASE_RETURN_STR( STATUS_INVALID_USER_BUFFER );
	CASE_RETURN_STR( STATUS_UNEXPECTED_IO_ERROR );
	CASE_RETURN_STR( STATUS_UNEXPECTED_MM_CREATE_ERR );
	CASE_RETURN_STR( STATUS_UNEXPECTED_MM_MAP_ERROR );
	CASE_RETURN_STR( STATUS_UNEXPECTED_MM_EXTEND_ERR );
	CASE_RETURN_STR( STATUS_NOT_LOGON_PROCESS );
	CASE_RETURN_STR( STATUS_LOGON_SESSION_EXISTS );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_1 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_2 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_3 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_4 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_5 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_6 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_7 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_8 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_9 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_10 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_11 );
	CASE_RETURN_STR( STATUS_INVALID_PARAMETER_12 );
	CASE_RETURN_STR( STATUS_REDIRECTOR_NOT_STARTED );
	CASE_RETURN_STR( STATUS_REDIRECTOR_STARTED );
	CASE_RETURN_STR( STATUS_STACK_OVERFLOW );
	CASE_RETURN_STR( STATUS_NO_SUCH_PACKAGE );
	CASE_RETURN_STR( STATUS_BAD_FUNCTION_TABLE );
	CASE_RETURN_STR( STATUS_VARIABLE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_DIRECTORY_NOT_EMPTY );
	CASE_RETURN_STR( STATUS_FILE_CORRUPT_ERROR );
	CASE_RETURN_STR( STATUS_NOT_A_DIRECTORY );
	CASE_RETURN_STR( STATUS_BAD_LOGON_SESSION_STATE );
	CASE_RETURN_STR( STATUS_LOGON_SESSION_COLLISION );
	CASE_RETURN_STR( STATUS_NAME_TOO_LONG );
	CASE_RETURN_STR( STATUS_FILES_OPEN );
	CASE_RETURN_STR( STATUS_CONNECTION_IN_USE );
	CASE_RETURN_STR( STATUS_MESSAGE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_PROCESS_IS_TERMINATING );
	CASE_RETURN_STR( STATUS_INVALID_LOGON_TYPE );
	CASE_RETURN_STR( STATUS_NO_GUID_TRANSLATION );
	CASE_RETURN_STR( STATUS_CANNOT_IMPERSONATE );
	CASE_RETURN_STR( STATUS_IMAGE_ALREADY_LOADED );
	CASE_RETURN_STR( STATUS_ABIOS_NOT_PRESENT );
	CASE_RETURN_STR( STATUS_ABIOS_LID_NOT_EXIST );
	CASE_RETURN_STR( STATUS_ABIOS_LID_ALREADY_OWNED );
	CASE_RETURN_STR( STATUS_ABIOS_NOT_LID_OWNER );
	CASE_RETURN_STR( STATUS_ABIOS_INVALID_COMMAND );
	CASE_RETURN_STR( STATUS_ABIOS_INVALID_LID );
	CASE_RETURN_STR( STATUS_ABIOS_SELECTOR_NOT_AVAILABLE );
	CASE_RETURN_STR( STATUS_ABIOS_INVALID_SELECTOR );
	CASE_RETURN_STR( STATUS_NO_LDT );
	CASE_RETURN_STR( STATUS_INVALID_LDT_SIZE );
	CASE_RETURN_STR( STATUS_INVALID_LDT_OFFSET );
	CASE_RETURN_STR( STATUS_INVALID_LDT_DESCRIPTOR );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_NE_FORMAT );
	CASE_RETURN_STR( STATUS_RXACT_INVALID_STATE );
	CASE_RETURN_STR( STATUS_RXACT_COMMIT_FAILURE );
	CASE_RETURN_STR( STATUS_MAPPED_FILE_SIZE_ZERO );
	CASE_RETURN_STR( STATUS_TOO_MANY_OPENED_FILES );
	CASE_RETURN_STR( STATUS_CANCELLED );
	CASE_RETURN_STR( STATUS_CANNOT_DELETE );
	CASE_RETURN_STR( STATUS_INVALID_COMPUTER_NAME );
	CASE_RETURN_STR( STATUS_FILE_DELETED );
	CASE_RETURN_STR( STATUS_SPECIAL_ACCOUNT );
	CASE_RETURN_STR( STATUS_SPECIAL_GROUP );
	CASE_RETURN_STR( STATUS_SPECIAL_USER );
	CASE_RETURN_STR( STATUS_MEMBERS_PRIMARY_GROUP );
	CASE_RETURN_STR( STATUS_FILE_CLOSED );
	CASE_RETURN_STR( STATUS_TOO_MANY_THREADS );
	CASE_RETURN_STR( STATUS_THREAD_NOT_IN_PROCESS );
	CASE_RETURN_STR( STATUS_TOKEN_ALREADY_IN_USE );
	CASE_RETURN_STR( STATUS_PAGEFILE_QUOTA_EXCEEDED );
	CASE_RETURN_STR( STATUS_COMMITMENT_LIMIT );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_LE_FORMAT );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_NOT_MZ );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_PROTECT );
	CASE_RETURN_STR( STATUS_INVALID_IMAGE_WIN_16 );
	CASE_RETURN_STR( STATUS_LOGON_SERVER_CONFLICT );
	CASE_RETURN_STR( STATUS_TIME_DIFFERENCE_AT_DC );
	CASE_RETURN_STR( STATUS_SYNCHRONIZATION_REQUIRED );
	CASE_RETURN_STR( STATUS_DLL_NOT_FOUND );
	CASE_RETURN_STR( STATUS_OPEN_FAILED );
	CASE_RETURN_STR( STATUS_IO_PRIVILEGE_FAILED );
	CASE_RETURN_STR( STATUS_ORDINAL_NOT_FOUND );
	CASE_RETURN_STR( STATUS_ENTRYPOINT_NOT_FOUND );
	CASE_RETURN_STR( STATUS_CONTROL_C_EXIT );
	CASE_RETURN_STR( STATUS_LOCAL_DISCONNECT );
	CASE_RETURN_STR( STATUS_REMOTE_DISCONNECT );
	CASE_RETURN_STR( STATUS_REMOTE_RESOURCES );
	CASE_RETURN_STR( STATUS_LINK_FAILED );
	CASE_RETURN_STR( STATUS_LINK_TIMEOUT );
	CASE_RETURN_STR( STATUS_INVALID_CONNECTION );
	CASE_RETURN_STR( STATUS_INVALID_ADDRESS );
	CASE_RETURN_STR( STATUS_DLL_INIT_FAILED );
	CASE_RETURN_STR( STATUS_MISSING_SYSTEMFILE );
	CASE_RETURN_STR( STATUS_UNHANDLED_EXCEPTION );
	CASE_RETURN_STR( STATUS_APP_INIT_FAILURE );
	CASE_RETURN_STR( STATUS_PAGEFILE_CREATE_FAILED );
	CASE_RETURN_STR( STATUS_NO_PAGEFILE );
	CASE_RETURN_STR( STATUS_INVALID_LEVEL );
	CASE_RETURN_STR( STATUS_WRONG_PASSWORD_CORE );
	CASE_RETURN_STR( STATUS_ILLEGAL_FLOAT_CONTEXT );
	CASE_RETURN_STR( STATUS_PIPE_BROKEN );
	CASE_RETURN_STR( STATUS_REGISTRY_CORRUPT );
	CASE_RETURN_STR( STATUS_REGISTRY_IO_FAILED );
	CASE_RETURN_STR( STATUS_NO_EVENT_PAIR );
	CASE_RETURN_STR( STATUS_UNRECOGNIZED_VOLUME );
	CASE_RETURN_STR( STATUS_SERIAL_NO_DEVICE_INITED );
	CASE_RETURN_STR( STATUS_NO_SUCH_ALIAS );
	CASE_RETURN_STR( STATUS_MEMBER_NOT_IN_ALIAS );
	CASE_RETURN_STR( STATUS_MEMBER_IN_ALIAS );
	CASE_RETURN_STR( STATUS_ALIAS_EXISTS );
	CASE_RETURN_STR( STATUS_LOGON_NOT_GRANTED );
	CASE_RETURN_STR( STATUS_TOO_MANY_SECRETS );
	CASE_RETURN_STR( STATUS_SECRET_TOO_LONG );
	CASE_RETURN_STR( STATUS_INTERNAL_DB_ERROR );
	CASE_RETURN_STR( STATUS_FULLSCREEN_MODE );
	CASE_RETURN_STR( STATUS_TOO_MANY_CONTEXT_IDS );
	CASE_RETURN_STR( STATUS_LOGON_TYPE_NOT_GRANTED );
	CASE_RETURN_STR( STATUS_NOT_REGISTRY_FILE );
	CASE_RETURN_STR( STATUS_NT_CROSS_ENCRYPTION_REQUIRED );
	CASE_RETURN_STR( STATUS_DOMAIN_CTRLR_CONFIG_ERROR );
	CASE_RETURN_STR( STATUS_FT_MISSING_MEMBER );
	CASE_RETURN_STR( STATUS_ILL_FORMED_SERVICE_ENTRY );
	CASE_RETURN_STR( STATUS_ILLEGAL_CHARACTER );
	CASE_RETURN_STR( STATUS_UNMAPPABLE_CHARACTER );
	CASE_RETURN_STR( STATUS_UNDEFINED_CHARACTER );
	CASE_RETURN_STR( STATUS_FLOPPY_VOLUME );
	CASE_RETURN_STR( STATUS_FLOPPY_ID_MARK_NOT_FOUND );
	CASE_RETURN_STR( STATUS_FLOPPY_WRONG_CYLINDER );
	CASE_RETURN_STR( STATUS_FLOPPY_UNKNOWN_ERROR );
	CASE_RETURN_STR( STATUS_FLOPPY_BAD_REGISTERS );
	CASE_RETURN_STR( STATUS_DISK_RECALIBRATE_FAILED );
	CASE_RETURN_STR( STATUS_DISK_OPERATION_FAILED );
	CASE_RETURN_STR( STATUS_DISK_RESET_FAILED );
	CASE_RETURN_STR( STATUS_SHARED_IRQ_BUSY );
	CASE_RETURN_STR( STATUS_FT_ORPHANING );
	CASE_RETURN_STR( STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT );
	CASE_RETURN_STR( STATUS_PARTITION_FAILURE );
	CASE_RETURN_STR( STATUS_INVALID_BLOCK_LENGTH );
	CASE_RETURN_STR( STATUS_DEVICE_NOT_PARTITIONED );
	CASE_RETURN_STR( STATUS_UNABLE_TO_LOCK_MEDIA );
	CASE_RETURN_STR( STATUS_UNABLE_TO_UNLOAD_MEDIA );
	CASE_RETURN_STR( STATUS_EOM_OVERFLOW );
	CASE_RETURN_STR( STATUS_NO_MEDIA );
	CASE_RETURN_STR( STATUS_NO_SUCH_MEMBER );
	CASE_RETURN_STR( STATUS_INVALID_MEMBER );
	CASE_RETURN_STR( STATUS_KEY_DELETED );
	CASE_RETURN_STR( STATUS_NO_LOG_SPACE );
	CASE_RETURN_STR( STATUS_TOO_MANY_SIDS );
	CASE_RETURN_STR( STATUS_LM_CROSS_ENCRYPTION_REQUIRED );
	CASE_RETURN_STR( STATUS_KEY_HAS_CHILDREN );
	CASE_RETURN_STR( STATUS_CHILD_MUST_BE_VOLATILE );
	CASE_RETURN_STR( STATUS_DEVICE_CONFIGURATION_ERROR );
	CASE_RETURN_STR( STATUS_DRIVER_INTERNAL_ERROR );
	CASE_RETURN_STR( STATUS_INVALID_DEVICE_STATE );
	CASE_RETURN_STR( STATUS_IO_DEVICE_ERROR );
	CASE_RETURN_STR( STATUS_DEVICE_PROTOCOL_ERROR );
	CASE_RETURN_STR( STATUS_BACKUP_CONTROLLER );
	CASE_RETURN_STR( STATUS_LOG_FILE_FULL );
	CASE_RETURN_STR( STATUS_TOO_LATE );
	CASE_RETURN_STR( STATUS_NO_TRUST_LSA_SECRET );
	CASE_RETURN_STR( STATUS_NO_TRUST_SAM_ACCOUNT );
	CASE_RETURN_STR( STATUS_TRUSTED_DOMAIN_FAILURE );
	CASE_RETURN_STR( STATUS_TRUSTED_RELATIONSHIP_FAILURE );
	CASE_RETURN_STR( STATUS_EVENTLOG_FILE_CORRUPT );
	CASE_RETURN_STR( STATUS_EVENTLOG_CANT_START );
	CASE_RETURN_STR( STATUS_TRUST_FAILURE );
	CASE_RETURN_STR( STATUS_MUTANT_LIMIT_EXCEEDED );
	CASE_RETURN_STR( STATUS_NETLOGON_NOT_STARTED );
	CASE_RETURN_STR( STATUS_ACCOUNT_EXPIRED );
	CASE_RETURN_STR( STATUS_POSSIBLE_DEADLOCK );
	CASE_RETURN_STR( STATUS_NETWORK_CREDENTIAL_CONFLICT );
	CASE_RETURN_STR( STATUS_REMOTE_SESSION_LIMIT );
	CASE_RETURN_STR( STATUS_EVENTLOG_FILE_CHANGED );
	CASE_RETURN_STR( STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT );
	CASE_RETURN_STR( STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT );
	CASE_RETURN_STR( STATUS_NOLOGON_SERVER_TRUST_ACCOUNT );
	CASE_RETURN_STR( STATUS_DOMAIN_TRUST_INCONSISTENT );
	CASE_RETURN_STR( STATUS_FS_DRIVER_REQUIRED );
	CASE_RETURN_STR( STATUS_NO_USER_SESSION_KEY );
	CASE_RETURN_STR( STATUS_USER_SESSION_DELETED );
	CASE_RETURN_STR( STATUS_RESOURCE_LANG_NOT_FOUND );
	CASE_RETURN_STR( STATUS_INSUFF_SERVER_RESOURCES );
	CASE_RETURN_STR( STATUS_INVALID_BUFFER_SIZE );
	CASE_RETURN_STR( STATUS_INVALID_ADDRESS_COMPONENT );
	CASE_RETURN_STR( STATUS_INVALID_ADDRESS_WILDCARD );
	CASE_RETURN_STR( STATUS_TOO_MANY_ADDRESSES );
	CASE_RETURN_STR( STATUS_ADDRESS_ALREADY_EXISTS );
	CASE_RETURN_STR( STATUS_ADDRESS_CLOSED );
	CASE_RETURN_STR( STATUS_CONNECTION_DISCONNECTED );
	CASE_RETURN_STR( STATUS_CONNECTION_RESET );
	CASE_RETURN_STR( STATUS_TOO_MANY_NODES );
	CASE_RETURN_STR( STATUS_TRANSACTION_ABORTED );
	CASE_RETURN_STR( STATUS_TRANSACTION_TIMED_OUT );
	CASE_RETURN_STR( STATUS_TRANSACTION_NO_RELEASE );
	CASE_RETURN_STR( STATUS_TRANSACTION_NO_MATCH );
	CASE_RETURN_STR( STATUS_TRANSACTION_RESPONDED );
	CASE_RETURN_STR( STATUS_TRANSACTION_INVALID_ID );
	CASE_RETURN_STR( STATUS_TRANSACTION_INVALID_TYPE );
	CASE_RETURN_STR( STATUS_NOT_SERVER_SESSION );
	CASE_RETURN_STR( STATUS_NOT_CLIENT_SESSION );
	CASE_RETURN_STR( STATUS_CANNOT_LOAD_REGISTRY_FILE );
	CASE_RETURN_STR( STATUS_DEBUG_ATTACH_FAILED );
	CASE_RETURN_STR( STATUS_SYSTEM_PROCESS_TERMINATED );
	CASE_RETURN_STR( STATUS_DATA_NOT_ACCEPTED );
	CASE_RETURN_STR( STATUS_NO_BROWSER_SERVERS_FOUND );
	CASE_RETURN_STR( STATUS_VDM_HARD_ERROR );
	CASE_RETURN_STR( STATUS_DRIVER_CANCEL_TIMEOUT );
	CASE_RETURN_STR( STATUS_REPLY_MESSAGE_MISMATCH );
	CASE_RETURN_STR( STATUS_MAPPED_ALIGNMENT );
	CASE_RETURN_STR( STATUS_IMAGE_CHECKSUM_MISMATCH );
	CASE_RETURN_STR( STATUS_LOST_WRITEBEHIND_DATA );
	CASE_RETURN_STR( STATUS_CLIENT_SERVER_PARAMETERS_INVALID );
	CASE_RETURN_STR( STATUS_PASSWORD_MUST_CHANGE );
	CASE_RETURN_STR( STATUS_NOT_FOUND );
	CASE_RETURN_STR( STATUS_NOT_TINY_STREAM );
	CASE_RETURN_STR( STATUS_RECOVERY_FAILURE );
	CASE_RETURN_STR( STATUS_STACK_OVERFLOW_READ );
	CASE_RETURN_STR( STATUS_FAIL_CHECK );
	CASE_RETURN_STR( STATUS_DUPLICATE_OBJECTID );
	CASE_RETURN_STR( STATUS_OBJECTID_EXISTS );
	CASE_RETURN_STR( STATUS_CONVERT_TO_LARGE );
	CASE_RETURN_STR( STATUS_RETRY );
	CASE_RETURN_STR( STATUS_FOUND_OUT_OF_SCOPE );
	CASE_RETURN_STR( STATUS_ALLOCATE_BUCKET );
	CASE_RETURN_STR( STATUS_PROPSET_NOT_FOUND );
	CASE_RETURN_STR( STATUS_MARSHALL_OVERFLOW );
	CASE_RETURN_STR( STATUS_INVALID_VARIANT );
	CASE_RETURN_STR( STATUS_DOMAIN_CONTROLLER_NOT_FOUND );
	CASE_RETURN_STR( STATUS_ACCOUNT_LOCKED_OUT );
	CASE_RETURN_STR( STATUS_HANDLE_NOT_CLOSABLE );
	CASE_RETURN_STR( STATUS_CONNECTION_REFUSED );
	CASE_RETURN_STR( STATUS_GRACEFUL_DISCONNECT );
	CASE_RETURN_STR( STATUS_ADDRESS_ALREADY_ASSOCIATED );
	CASE_RETURN_STR( STATUS_ADDRESS_NOT_ASSOCIATED );
	CASE_RETURN_STR( STATUS_CONNECTION_INVALID );
	CASE_RETURN_STR( STATUS_CONNECTION_ACTIVE );
	CASE_RETURN_STR( STATUS_NETWORK_UNREACHABLE );
	CASE_RETURN_STR( STATUS_HOST_UNREACHABLE );
	CASE_RETURN_STR( STATUS_PROTOCOL_UNREACHABLE );
	CASE_RETURN_STR( STATUS_PORT_UNREACHABLE );
	CASE_RETURN_STR( STATUS_REQUEST_ABORTED );
	CASE_RETURN_STR( STATUS_CONNECTION_ABORTED );
	CASE_RETURN_STR( STATUS_BAD_COMPRESSION_BUFFER );
	CASE_RETURN_STR( STATUS_USER_MAPPED_FILE );
	CASE_RETURN_STR( STATUS_AUDIT_FAILED );
	CASE_RETURN_STR( STATUS_TIMER_RESOLUTION_NOT_SET );
	CASE_RETURN_STR( STATUS_CONNECTION_COUNT_LIMIT );
	CASE_RETURN_STR( STATUS_LOGIN_TIME_RESTRICTION );
	CASE_RETURN_STR( STATUS_LOGIN_WKSTA_RESTRICTION );
	CASE_RETURN_STR( STATUS_IMAGE_MP_UP_MISMATCH );
	CASE_RETURN_STR( STATUS_INSUFFICIENT_LOGON_INFO );
	CASE_RETURN_STR( STATUS_BAD_DLL_ENTRYPOINT );
	CASE_RETURN_STR( STATUS_BAD_SERVICE_ENTRYPOINT );
	CASE_RETURN_STR( STATUS_LPC_REPLY_LOST );
	CASE_RETURN_STR( STATUS_IP_ADDRESS_CONFLICT1 );
	CASE_RETURN_STR( STATUS_IP_ADDRESS_CONFLICT2 );
	CASE_RETURN_STR( STATUS_REGISTRY_QUOTA_LIMIT );
	CASE_RETURN_STR( STATUS_PATH_NOT_COVERED );
	CASE_RETURN_STR( STATUS_NO_CALLBACK_ACTIVE );
	CASE_RETURN_STR( STATUS_LICENSE_QUOTA_EXCEEDED );
	CASE_RETURN_STR( STATUS_PWD_TOO_SHORT );
	CASE_RETURN_STR( STATUS_PWD_TOO_RECENT );
	CASE_RETURN_STR( STATUS_PWD_HISTORY_CONFLICT );
	CASE_RETURN_STR( STATUS_PLUGPLAY_NO_DEVICE );
	CASE_RETURN_STR( STATUS_UNSUPPORTED_COMPRESSION );
	CASE_RETURN_STR( STATUS_INVALID_HW_PROFILE );
	CASE_RETURN_STR( STATUS_INVALID_PLUGPLAY_DEVICE_PATH );
	CASE_RETURN_STR( STATUS_DRIVER_ORDINAL_NOT_FOUND );
	CASE_RETURN_STR( STATUS_DRIVER_ENTRYPOINT_NOT_FOUND );
	CASE_RETURN_STR( STATUS_RESOURCE_NOT_OWNED );
	CASE_RETURN_STR( STATUS_TOO_MANY_LINKS );
	CASE_RETURN_STR( STATUS_QUOTA_LIST_INCONSISTENT );
	CASE_RETURN_STR( STATUS_FILE_IS_OFFLINE );
	CASE_RETURN_STR( STATUS_EVALUATION_EXPIRATION );
	CASE_RETURN_STR( STATUS_ILLEGAL_DLL_RELOCATION );
	CASE_RETURN_STR( STATUS_LICENSE_VIOLATION );
	CASE_RETURN_STR( STATUS_DLL_INIT_FAILED_LOGOFF );
	CASE_RETURN_STR( STATUS_DRIVER_UNABLE_TO_LOAD );
	CASE_RETURN_STR( STATUS_DFS_UNAVAILABLE );
	CASE_RETURN_STR( STATUS_VOLUME_DISMOUNTED );
	CASE_RETURN_STR( STATUS_WX86_INTERNAL_ERROR );
	CASE_RETURN_STR( STATUS_WX86_FLOAT_STACK_CHECK );
	CASE_RETURN_STR( STATUS_VALIDATE_CONTINUE );
	CASE_RETURN_STR( STATUS_NO_MATCH );
	CASE_RETURN_STR( STATUS_NO_MORE_MATCHES );
	CASE_RETURN_STR( STATUS_NOT_A_REPARSE_POINT );
	CASE_RETURN_STR( STATUS_IO_REPARSE_TAG_INVALID );
	CASE_RETURN_STR( STATUS_IO_REPARSE_TAG_MISMATCH );
	CASE_RETURN_STR( STATUS_IO_REPARSE_DATA_INVALID );
	CASE_RETURN_STR( STATUS_IO_REPARSE_TAG_NOT_HANDLED );
	CASE_RETURN_STR( STATUS_REPARSE_POINT_NOT_RESOLVED );
	CASE_RETURN_STR( STATUS_DIRECTORY_IS_A_REPARSE_POINT );
	CASE_RETURN_STR( STATUS_RANGE_LIST_CONFLICT );
	CASE_RETURN_STR( STATUS_SOURCE_ELEMENT_EMPTY );
	CASE_RETURN_STR( STATUS_DESTINATION_ELEMENT_FULL );
	CASE_RETURN_STR( STATUS_ILLEGAL_ELEMENT_ADDRESS );
	CASE_RETURN_STR( STATUS_MAGAZINE_NOT_PRESENT );
	CASE_RETURN_STR( STATUS_REINITIALIZATION_NEEDED );
	CASE_RETURN_STR( STATUS_DEVICE_REQUIRES_CLEANING );
	CASE_RETURN_STR( STATUS_DEVICE_DOOR_OPEN );
	CASE_RETURN_STR( STATUS_ENCRYPTION_FAILED );
	CASE_RETURN_STR( STATUS_DECRYPTION_FAILED );
	CASE_RETURN_STR( STATUS_RANGE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_NO_RECOVERY_POLICY );
	CASE_RETURN_STR( STATUS_NO_EFS );
	CASE_RETURN_STR( STATUS_WRONG_EFS );
	CASE_RETURN_STR( STATUS_NO_USER_KEYS );
	CASE_RETURN_STR( STATUS_FILE_NOT_ENCRYPTED );
	CASE_RETURN_STR( STATUS_NOT_EXPORT_FORMAT );
	CASE_RETURN_STR( STATUS_FILE_ENCRYPTED );
	CASE_RETURN_STR( STATUS_WAKE_SYSTEM );
	CASE_RETURN_STR( STATUS_WMI_GUID_NOT_FOUND );
	CASE_RETURN_STR( STATUS_WMI_INSTANCE_NOT_FOUND );
	CASE_RETURN_STR( STATUS_WMI_ITEMID_NOT_FOUND );
	CASE_RETURN_STR( STATUS_WMI_TRY_AGAIN );
	CASE_RETURN_STR( STATUS_SHARED_POLICY );
	CASE_RETURN_STR( STATUS_POLICY_OBJECT_NOT_FOUND );
	CASE_RETURN_STR( STATUS_POLICY_ONLY_IN_DS );
	CASE_RETURN_STR( STATUS_VOLUME_NOT_UPGRADED );
	CASE_RETURN_STR( STATUS_REMOTE_STORAGE_NOT_ACTIVE );
	CASE_RETURN_STR( STATUS_REMOTE_STORAGE_MEDIA_ERROR );
	CASE_RETURN_STR( STATUS_NO_TRACKING_SERVICE );
	CASE_RETURN_STR( STATUS_SERVER_SID_MISMATCH );
	CASE_RETURN_STR( STATUS_DS_NO_ATTRIBUTE_OR_VALUE );
	CASE_RETURN_STR( STATUS_DS_INVALID_ATTRIBUTE_SYNTAX );
	CASE_RETURN_STR( STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED );
	CASE_RETURN_STR( STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS );
	CASE_RETURN_STR( STATUS_DS_BUSY );
	CASE_RETURN_STR( STATUS_DS_UNAVAILABLE );
	CASE_RETURN_STR( STATUS_DS_NO_RIDS_ALLOCATED );
	CASE_RETURN_STR( STATUS_DS_NO_MORE_RIDS );
	CASE_RETURN_STR( STATUS_DS_INCORRECT_ROLE_OWNER );
	CASE_RETURN_STR( STATUS_DS_RIDMGR_INIT_ERROR );
	CASE_RETURN_STR( STATUS_DS_OBJ_CLASS_VIOLATION );
	CASE_RETURN_STR( STATUS_DS_CANT_ON_NON_LEAF );
	CASE_RETURN_STR( STATUS_DS_CANT_ON_RDN );
	CASE_RETURN_STR( STATUS_DS_CANT_MOD_OBJ_CLASS );
	CASE_RETURN_STR( STATUS_DS_CROSS_DOM_MOVE_FAILED );
	CASE_RETURN_STR( STATUS_DS_GC_NOT_AVAILABLE );
	CASE_RETURN_STR( STATUS_DIRECTORY_SERVICE_REQUIRED );
	CASE_RETURN_STR( STATUS_REPARSE_ATTRIBUTE_CONFLICT );
	CASE_RETURN_STR( STATUS_CANT_ENABLE_DENY_ONLY );
	CASE_RETURN_STR( STATUS_FLOAT_MULTIPLE_FAULTS );
	CASE_RETURN_STR( STATUS_FLOAT_MULTIPLE_TRAPS );
	CASE_RETURN_STR( STATUS_DEVICE_REMOVED );
	CASE_RETURN_STR( STATUS_JOURNAL_DELETE_IN_PROGRESS );
	CASE_RETURN_STR( STATUS_JOURNAL_NOT_ACTIVE );
	CASE_RETURN_STR( STATUS_NOINTERFACE );
	CASE_RETURN_STR( STATUS_DS_ADMIN_LIMIT_EXCEEDED );
	CASE_RETURN_STR( STATUS_DRIVER_FAILED_SLEEP );
	CASE_RETURN_STR( STATUS_MUTUAL_AUTHENTICATION_FAILED );
	CASE_RETURN_STR( STATUS_CORRUPT_SYSTEM_FILE );
	CASE_RETURN_STR( STATUS_DATATYPE_MISALIGNMENT_ERROR );
	CASE_RETURN_STR( STATUS_WMI_READ_ONLY );
	CASE_RETURN_STR( STATUS_WMI_SET_FAILURE );
	CASE_RETURN_STR( STATUS_COMMITMENT_MINIMUM );
	CASE_RETURN_STR( STATUS_REG_NAT_CONSUMPTION );
	CASE_RETURN_STR( STATUS_TRANSPORT_FULL );
	CASE_RETURN_STR( STATUS_DS_SAM_INIT_FAILURE );
	CASE_RETURN_STR( STATUS_ONLY_IF_CONNECTED );
	CASE_RETURN_STR( STATUS_DS_SENSITIVE_GROUP_VIOLATION );
	CASE_RETURN_STR( STATUS_PNP_RESTART_ENUMERATION );
	CASE_RETURN_STR( STATUS_JOURNAL_ENTRY_DELETED );
	CASE_RETURN_STR( STATUS_DS_CANT_MOD_PRIMARYGROUPID );
	CASE_RETURN_STR( STATUS_SYSTEM_IMAGE_BAD_SIGNATURE );
	CASE_RETURN_STR( STATUS_PNP_REBOOT_REQUIRED );
	CASE_RETURN_STR( STATUS_POWER_STATE_INVALID );
	CASE_RETURN_STR( STATUS_DS_INVALID_GROUP_TYPE );
	CASE_RETURN_STR( STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN );
	CASE_RETURN_STR( STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN );
	CASE_RETURN_STR( STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER );
	CASE_RETURN_STR( STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER );
	CASE_RETURN_STR( STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER );
	CASE_RETURN_STR( STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER );
	CASE_RETURN_STR( STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER );
	CASE_RETURN_STR( STATUS_DS_HAVE_PRIMARY_MEMBERS );
	CASE_RETURN_STR( STATUS_WMI_NOT_SUPPORTED );
	CASE_RETURN_STR( STATUS_INSUFFICIENT_POWER );
	CASE_RETURN_STR( STATUS_SAM_NEED_BOOTKEY_PASSWORD );
	CASE_RETURN_STR( STATUS_SAM_NEED_BOOTKEY_FLOPPY );
	CASE_RETURN_STR( STATUS_DS_CANT_START );
	CASE_RETURN_STR( STATUS_DS_INIT_FAILURE );
	CASE_RETURN_STR( STATUS_SAM_INIT_FAILURE );
	CASE_RETURN_STR( STATUS_DS_GC_REQUIRED );
	CASE_RETURN_STR( STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY );
	CASE_RETURN_STR( STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS );
	CASE_RETURN_STR( STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED );
	CASE_RETURN_STR( STATUS_MULTIPLE_FAULT_VIOLATION );
	CASE_RETURN_STR( STATUS_NOT_SUPPORTED_ON_SBS );
	CASE_RETURN_STR( STATUS_WOW_ASSERTION );
	CASE_RETURN_STR( DBG_NO_STATE_CHANGE );
	CASE_RETURN_STR( DBG_APP_NOT_IDLE );
	CASE_RETURN_STR( RPC_NT_INVALID_STRING_BINDING );
	CASE_RETURN_STR( RPC_NT_WRONG_KIND_OF_BINDING );
	CASE_RETURN_STR( RPC_NT_INVALID_BINDING );
	CASE_RETURN_STR( RPC_NT_PROTSEQ_NOT_SUPPORTED );
	CASE_RETURN_STR( RPC_NT_INVALID_RPC_PROTSEQ );
	CASE_RETURN_STR( RPC_NT_INVALID_STRING_UUID );
	CASE_RETURN_STR( RPC_NT_INVALID_ENDPOINT_FORMAT );
	CASE_RETURN_STR( RPC_NT_INVALID_NET_ADDR );
	CASE_RETURN_STR( RPC_NT_NO_ENDPOINT_FOUND );
	CASE_RETURN_STR( RPC_NT_INVALID_TIMEOUT );
	CASE_RETURN_STR( RPC_NT_OBJECT_NOT_FOUND );
	CASE_RETURN_STR( RPC_NT_ALREADY_REGISTERED );
	CASE_RETURN_STR( RPC_NT_TYPE_ALREADY_REGISTERED );
	CASE_RETURN_STR( RPC_NT_ALREADY_LISTENING );
	CASE_RETURN_STR( RPC_NT_NO_PROTSEQS_REGISTERED );
	CASE_RETURN_STR( RPC_NT_NOT_LISTENING );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_MGR_TYPE );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_IF );
	CASE_RETURN_STR( RPC_NT_NO_BINDINGS );
	CASE_RETURN_STR( RPC_NT_NO_PROTSEQS );
	CASE_RETURN_STR( RPC_NT_CANT_CREATE_ENDPOINT );
	CASE_RETURN_STR( RPC_NT_OUT_OF_RESOURCES );
	CASE_RETURN_STR( RPC_NT_SERVER_UNAVAILABLE );
	CASE_RETURN_STR( RPC_NT_SERVER_TOO_BUSY );
	CASE_RETURN_STR( RPC_NT_INVALID_NETWORK_OPTIONS );
	CASE_RETURN_STR( RPC_NT_NO_CALL_ACTIVE );
	CASE_RETURN_STR( RPC_NT_CALL_FAILED );
	CASE_RETURN_STR( RPC_NT_CALL_FAILED_DNE );
	CASE_RETURN_STR( RPC_NT_PROTOCOL_ERROR );
	CASE_RETURN_STR( RPC_NT_UNSUPPORTED_TRANS_SYN );
	CASE_RETURN_STR( RPC_NT_UNSUPPORTED_TYPE );
	CASE_RETURN_STR( RPC_NT_INVALID_TAG );
	CASE_RETURN_STR( RPC_NT_INVALID_BOUND );
	CASE_RETURN_STR( RPC_NT_NO_ENTRY_NAME );
	CASE_RETURN_STR( RPC_NT_INVALID_NAME_SYNTAX );
	CASE_RETURN_STR( RPC_NT_UNSUPPORTED_NAME_SYNTAX );
	CASE_RETURN_STR( RPC_NT_UUID_NO_ADDRESS );
	CASE_RETURN_STR( RPC_NT_DUPLICATE_ENDPOINT );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_AUTHN_TYPE );
	CASE_RETURN_STR( RPC_NT_MAX_CALLS_TOO_SMALL );
	CASE_RETURN_STR( RPC_NT_STRING_TOO_LONG );
	CASE_RETURN_STR( RPC_NT_PROTSEQ_NOT_FOUND );
	CASE_RETURN_STR( RPC_NT_PROCNUM_OUT_OF_RANGE );
	CASE_RETURN_STR( RPC_NT_BINDING_HAS_NO_AUTH );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_AUTHN_SERVICE );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_AUTHN_LEVEL );
	CASE_RETURN_STR( RPC_NT_INVALID_AUTH_IDENTITY );
	CASE_RETURN_STR( RPC_NT_UNKNOWN_AUTHZ_SERVICE );
	CASE_RETURN_STR( EPT_NT_INVALID_ENTRY );
	CASE_RETURN_STR( EPT_NT_CANT_PERFORM_OP );
	CASE_RETURN_STR( EPT_NT_NOT_REGISTERED );
	CASE_RETURN_STR( RPC_NT_NOTHING_TO_EXPORT );
	CASE_RETURN_STR( RPC_NT_INCOMPLETE_NAME );
	CASE_RETURN_STR( RPC_NT_INVALID_VERS_OPTION );
	CASE_RETURN_STR( RPC_NT_NO_MORE_MEMBERS );
	CASE_RETURN_STR( RPC_NT_NOT_ALL_OBJS_UNEXPORTED );
	CASE_RETURN_STR( RPC_NT_INTERFACE_NOT_FOUND );
	CASE_RETURN_STR( RPC_NT_ENTRY_ALREADY_EXISTS );
	CASE_RETURN_STR( RPC_NT_ENTRY_NOT_FOUND );
	CASE_RETURN_STR( RPC_NT_NAME_SERVICE_UNAVAILABLE );
	CASE_RETURN_STR( RPC_NT_INVALID_NAF_ID );
	CASE_RETURN_STR( RPC_NT_CANNOT_SUPPORT );
	CASE_RETURN_STR( RPC_NT_NO_CONTEXT_AVAILABLE );
	CASE_RETURN_STR( RPC_NT_INTERNAL_ERROR );
	CASE_RETURN_STR( RPC_NT_ZERO_DIVIDE );
	CASE_RETURN_STR( RPC_NT_ADDRESS_ERROR );
	CASE_RETURN_STR( RPC_NT_FP_DIV_ZERO );
	CASE_RETURN_STR( RPC_NT_FP_UNDERFLOW );
	CASE_RETURN_STR( RPC_NT_FP_OVERFLOW );
	CASE_RETURN_STR( RPC_NT_NO_MORE_ENTRIES );
	CASE_RETURN_STR( RPC_NT_SS_CHAR_TRANS_OPEN_FAIL );
	CASE_RETURN_STR( RPC_NT_SS_CHAR_TRANS_SHORT_FILE );
	CASE_RETURN_STR( RPC_NT_SS_IN_NULL_CONTEXT );
	CASE_RETURN_STR( RPC_NT_SS_CONTEXT_MISMATCH );
	CASE_RETURN_STR( RPC_NT_SS_CONTEXT_DAMAGED );
	CASE_RETURN_STR( RPC_NT_SS_HANDLES_MISMATCH );
	CASE_RETURN_STR( RPC_NT_SS_CANNOT_GET_CALL_HANDLE );
	CASE_RETURN_STR( RPC_NT_NULL_REF_POINTER );
	CASE_RETURN_STR( RPC_NT_ENUM_VALUE_OUT_OF_RANGE );
	CASE_RETURN_STR( RPC_NT_BYTE_COUNT_TOO_SMALL );
	CASE_RETURN_STR( RPC_NT_BAD_STUB_DATA );
	CASE_RETURN_STR( RPC_NT_CALL_IN_PROGRESS );
	CASE_RETURN_STR( RPC_NT_NO_MORE_BINDINGS );
	CASE_RETURN_STR( RPC_NT_GROUP_MEMBER_NOT_FOUND );
	CASE_RETURN_STR( EPT_NT_CANT_CREATE );
	CASE_RETURN_STR( RPC_NT_INVALID_OBJECT );
	CASE_RETURN_STR( RPC_NT_NO_INTERFACES );
	CASE_RETURN_STR( RPC_NT_CALL_CANCELLED );
	CASE_RETURN_STR( RPC_NT_BINDING_INCOMPLETE );
	CASE_RETURN_STR( RPC_NT_COMM_FAILURE );
	CASE_RETURN_STR( RPC_NT_UNSUPPORTED_AUTHN_LEVEL );
	CASE_RETURN_STR( RPC_NT_NO_PRINC_NAME );
	CASE_RETURN_STR( RPC_NT_NOT_RPC_ERROR );
	CASE_RETURN_STR( RPC_NT_UUID_LOCAL_ONLY );
	CASE_RETURN_STR( RPC_NT_SEC_PKG_ERROR );
	CASE_RETURN_STR( RPC_NT_NOT_CANCELLED );
	CASE_RETURN_STR( RPC_NT_INVALID_ES_ACTION );
	CASE_RETURN_STR( RPC_NT_WRONG_ES_VERSION );
	CASE_RETURN_STR( RPC_NT_WRONG_STUB_VERSION );
	CASE_RETURN_STR( RPC_NT_INVALID_PIPE_OBJECT );
	CASE_RETURN_STR( RPC_NT_INVALID_PIPE_OPERATION );
	CASE_RETURN_STR( RPC_NT_WRONG_PIPE_VERSION );
	CASE_RETURN_STR( RPC_NT_PIPE_CLOSED );
	CASE_RETURN_STR( RPC_NT_PIPE_DISCIPLINE_ERROR );
	CASE_RETURN_STR( RPC_NT_PIPE_EMPTY );
	CASE_RETURN_STR( RPC_NT_INVALID_ASYNC_HANDLE );
	CASE_RETURN_STR( RPC_NT_INVALID_ASYNC_CALL );
	CASE_RETURN_STR( RPC_NT_SEND_INCOMPLETE );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_OPCODE );
	CASE_RETURN_STR( STATUS_ACPI_STACK_OVERFLOW );
	CASE_RETURN_STR( STATUS_ACPI_ASSERT_FAILED );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_INDEX );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_ARGUMENT );
	CASE_RETURN_STR( STATUS_ACPI_FATAL );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_SUPERNAME );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_ARGTYPE );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_OBJTYPE );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_TARGETTYPE );
	CASE_RETURN_STR( STATUS_ACPI_INCORRECT_ARGUMENT_COUNT );
	CASE_RETURN_STR( STATUS_ACPI_ADDRESS_NOT_MAPPED );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_EVENTTYPE );
	CASE_RETURN_STR( STATUS_ACPI_HANDLER_COLLISION );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_DATA );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_REGION );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_ACCESS_SIZE );
	CASE_RETURN_STR( STATUS_ACPI_ACQUIRE_GLOBAL_LOCK );
	CASE_RETURN_STR( STATUS_ACPI_ALREADY_INITIALIZED );
	CASE_RETURN_STR( STATUS_ACPI_NOT_INITIALIZED );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_MUTEX_LEVEL );
	CASE_RETURN_STR( STATUS_ACPI_MUTEX_NOT_OWNED );
	CASE_RETURN_STR( STATUS_ACPI_MUTEX_NOT_OWNER );
	CASE_RETURN_STR( STATUS_ACPI_RS_ACCESS );
	CASE_RETURN_STR( STATUS_ACPI_INVALID_TABLE );
	CASE_RETURN_STR( STATUS_ACPI_REG_HANDLER_FAILED );
	CASE_RETURN_STR( STATUS_ACPI_POWER_REQUEST_FAILED );
	CASE_RETURN_STR( STATUS_CTX_WINSTATION_NAME_INVALID );
	CASE_RETURN_STR( STATUS_CTX_INVALID_PD );
	CASE_RETURN_STR( STATUS_CTX_PD_NOT_FOUND );
	CASE_RETURN_STR( STATUS_CTX_CDM_CONNECT );
	CASE_RETURN_STR( STATUS_CTX_CDM_DISCONNECT );
	CASE_RETURN_STR( STATUS_CTX_CLOSE_PENDING );
	CASE_RETURN_STR( STATUS_CTX_NO_OUTBUF );
	CASE_RETURN_STR( STATUS_CTX_MODEM_INF_NOT_FOUND );
	CASE_RETURN_STR( STATUS_CTX_INVALID_MODEMNAME );
	CASE_RETURN_STR( STATUS_CTX_RESPONSE_ERROR );
	CASE_RETURN_STR( STATUS_CTX_MODEM_RESPONSE_TIMEOUT );
	CASE_RETURN_STR( STATUS_CTX_MODEM_RESPONSE_NO_CARRIER );
	CASE_RETURN_STR( STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE );
	CASE_RETURN_STR( STATUS_CTX_MODEM_RESPONSE_BUSY );
	CASE_RETURN_STR( STATUS_CTX_MODEM_RESPONSE_VOICE );
	CASE_RETURN_STR( STATUS_CTX_TD_ERROR );
	CASE_RETURN_STR( STATUS_CTX_LICENSE_CLIENT_INVALID );
	CASE_RETURN_STR( STATUS_CTX_LICENSE_NOT_AVAILABLE );
	CASE_RETURN_STR( STATUS_CTX_LICENSE_EXPIRED );
	CASE_RETURN_STR( STATUS_CTX_WINSTATION_NOT_FOUND );
	CASE_RETURN_STR( STATUS_CTX_WINSTATION_NAME_COLLISION );
	CASE_RETURN_STR( STATUS_CTX_WINSTATION_BUSY );
	CASE_RETURN_STR( STATUS_CTX_BAD_VIDEO_MODE );
	CASE_RETURN_STR( STATUS_CTX_GRAPHICS_INVALID );
	CASE_RETURN_STR( STATUS_CTX_NOT_CONSOLE );
	CASE_RETURN_STR( STATUS_CTX_CLIENT_QUERY_TIMEOUT );
	CASE_RETURN_STR( STATUS_CTX_CONSOLE_DISCONNECT );
	CASE_RETURN_STR( STATUS_CTX_CONSOLE_CONNECT );
	CASE_RETURN_STR( STATUS_CTX_SHADOW_DENIED );
	CASE_RETURN_STR( STATUS_CTX_WINSTATION_ACCESS_DENIED );
	CASE_RETURN_STR( STATUS_CTX_INVALID_WD );
	CASE_RETURN_STR( STATUS_CTX_WD_NOT_FOUND );
	CASE_RETURN_STR( STATUS_CTX_SHADOW_INVALID );
	CASE_RETURN_STR( STATUS_CTX_SHADOW_DISABLED );
	CASE_RETURN_STR( STATUS_RDP_PROTOCOL_ERROR );
	CASE_RETURN_STR( STATUS_CTX_CLIENT_LICENSE_NOT_SET );
	CASE_RETURN_STR( STATUS_CTX_CLIENT_LICENSE_IN_USE );
	CASE_RETURN_STR( STATUS_PNP_BAD_MPS_TABLE );
	CASE_RETURN_STR( STATUS_PNP_TRANSLATION_FAILED );
	CASE_RETURN_STR( STATUS_PNP_IRQ_TRANSLATION_FAILED );
	default:
		return NULL;
	}
}
#endif	// DBG