www.pudn.com > FsTPM0.rar > DebugPrint.cpp


/******************************************************************** 
	created:	2003/08/05 
	created:	5:8:2003   4:22 
	filename: 	g:\temp\FsTPM\FsTPM\FsTPM\DebugPrint.cpp 
	file path:	g:\temp\FsTPM\FsTPM\FsTPM 
	file base:	DebugPrint 
	file ext:	cpp 
	author:		Supermi 
	 
	purpose:	用于调试,输出一些关键结构的信息 
*********************************************************************/ 
 
#include "FsTPM.h" 
 
void   
ErrorString(  
			NTSTATUS RetStat 
			)  
			/*++ 
 
			Followed Routine Description: 
 
			Return error string for which RetStat stand 
 
			Arguments: 
				RetStat  - Error State Code 
 
			Return Value: 
				a error string 
 
			Notice : 
			    Should release the returned string by yourself 
			--*/ 
{ 
	CHAR Buffer[256]; 
 
	switch( RetStat ) { 
 
	case STATUS_SUCCESS: 
		strcpy( Buffer, "SUCCESS" ); 
		break; 
	case STATUS_CRC_ERROR: 
		strcpy( Buffer, "CRC ERROR" ); 
		break; 
	case STATUS_NOT_IMPLEMENTED: 
		strcpy( Buffer, "NOT IMPLEMENTED" ); 
		break; 
	case STATUS_EAS_NOT_SUPPORTED: 
		strcpy( Buffer, "EAS NOT SUPPORTED" ); 
		break; 
	case STATUS_EA_TOO_LARGE: 
		strcpy( Buffer, "EA TOO LARGE"); 
		break; 
	case STATUS_NONEXISTENT_EA_ENTRY: 
		strcpy( Buffer, "NONEXISTENT EA ENTRY"); 
		break; 
	case STATUS_BAD_NETWORK_NAME: 
		strcpy( Buffer, "BAD NETWORK NAME" ); 
		break; 
	case STATUS_NOTIFY_ENUM_DIR: 
		strcpy( Buffer, "NOTIFY ENUM DIR" ); 
		break; 
	case STATUS_FILE_CORRUPT_ERROR: 
		strcpy( Buffer, "FILE CORRUPT" ); 
		break; 
	case STATUS_DISK_CORRUPT_ERROR: 
		strcpy( Buffer, "DISK CORRUPT" ); 
		break; 
	case STATUS_RANGE_NOT_LOCKED: 
		strcpy( Buffer, "RANGE NOT LOCKED" ); 
		break; 
	case STATUS_FILE_CLOSED: 
		strcpy( Buffer, "FILE CLOSED" ); 
		break; 
	case STATUS_IN_PAGE_ERROR: 
		strcpy( Buffer, "IN PAGE ERROR" ); 
		break; 
	case STATUS_CANCELLED: 
		strcpy( Buffer, "CANCELLED" ); 
		break; 
	case STATUS_QUOTA_EXCEEDED: 
		strcpy( Buffer, "QUOTA EXCEEDED" ); 
		break; 
	case STATUS_NOT_SUPPORTED: 
		strcpy( Buffer, "NOT SUPPORTED" ); 
		break; 
	case STATUS_NO_MORE_FILES: 
		strcpy( Buffer, "NO MORE FILES" ); 
		break; 
	case STATUS_BUFFER_TOO_SMALL: 
		strcpy( Buffer, "BUFFER TOO SMALL" ); 
		break; 
	case STATUS_OBJECT_NAME_INVALID: 
		strcpy( Buffer, "NAME INVALID" ); 
		break; 
	case STATUS_OBJECT_NAME_NOT_FOUND: 
		strcpy( Buffer, "FILE NOT FOUND" ); 
		break; 
	case STATUS_NOT_A_DIRECTORY: 
		strcpy( Buffer, "NOT A DIRECTORY" ); 
		break; 
	case STATUS_NO_SUCH_FILE: 
		strcpy( Buffer, "NO SUCH FILE" ); 
		break; 
	case STATUS_OBJECT_NAME_COLLISION: 
		strcpy( Buffer, "NAME COLLISION" ); 
		break; 
	case STATUS_NONEXISTENT_SECTOR: 
		strcpy( Buffer, "NONEXISTENT SECTOR" ); 
		break; 
	case STATUS_BAD_NETWORK_PATH: 
		strcpy( Buffer, "BAD NETWORK PATH" ); 
		break; 
	case STATUS_OBJECT_PATH_NOT_FOUND: 
		strcpy( Buffer, "PATH NOT FOUND" ); 
		break; 
	case STATUS_NO_SUCH_DEVICE: 
		strcpy( Buffer, "INVALID PARAMETER" ); 
		break; 
	case STATUS_END_OF_FILE: 
		strcpy( Buffer, "END OF FILE" ); 
		break; 
	case STATUS_NOTIFY_CLEANUP: 
		strcpy( Buffer, "NOTIFY CLEANUP" ); 
		break; 
	case STATUS_BUFFER_OVERFLOW: 
		strcpy( Buffer, "BUFFER OVERFLOW" ); 
		break; 
	case STATUS_NO_MORE_ENTRIES: 
		strcpy( Buffer, "NO MORE ENTRIES" ); 
		break; 
	case STATUS_ACCESS_DENIED: 
		strcpy( Buffer, "ACCESS DENIED" ); 
		break; 
	case STATUS_SHARING_VIOLATION: 
		strcpy( Buffer, "SHARING VIOLATION" ); 
		break;        
	case STATUS_INVALID_PARAMETER: 
		strcpy( Buffer, "INVALID PARAMETER" ); 
		break;        
	case STATUS_OPLOCK_BREAK_IN_PROGRESS: 
		strcpy( Buffer, "OPLOCK BREAK" ); 
		break;         
	case STATUS_OPLOCK_NOT_GRANTED: 
		strcpy( Buffer, "OPLOCK NOT GRANTED" ); 
		break; 
	case STATUS_FILE_LOCK_CONFLICT: 
		strcpy( Buffer, "FILE LOCK CONFLICT" ); 
		break; 
	case STATUS_PENDING: 
		strcpy( Buffer, "PENDING" ); 
		break;        
	case STATUS_REPARSE: 
		strcpy( Buffer, "REPARSE" ); 
		break;        
	case STATUS_MORE_ENTRIES: 
		strcpy( Buffer, "MORE" ); 
		break;        
	case STATUS_DELETE_PENDING: 
		strcpy( Buffer, "DELETE PEND" ); 
		break;        
	case STATUS_CANNOT_DELETE: 
		strcpy( Buffer, "CANNOT DELETE" ); 
		break;        
	case STATUS_LOCK_NOT_GRANTED: 
		strcpy( Buffer, "NOT GRANTED" ); 
		break;        
	case STATUS_FILE_IS_A_DIRECTORY: 
		strcpy( Buffer, "IS DIRECTORY" ); 
		break; 
	case STATUS_ALREADY_COMMITTED: 
		strcpy( Buffer, "ALREADY COMMITTED" ); 
		break; 
	case STATUS_INVALID_EA_FLAG: 
		strcpy( Buffer, "INVALID EA FLAG" ); 
		break; 
	case STATUS_INVALID_INFO_CLASS: 
		strcpy( Buffer, "INVALID INFO CLASS" ); 
		break; 
	case STATUS_INVALID_HANDLE: 
		strcpy( Buffer, "INVALID HANDLE" ); 
		break; 
	case STATUS_INVALID_DEVICE_REQUEST: 
		strcpy( Buffer, "INVALID DEVICE REQUEST" ); 
		break; 
	case STATUS_WRONG_VOLUME: 
		strcpy( Buffer, "WRONG VOLUME" ); 
		break; 
	case STATUS_UNEXPECTED_NETWORK_ERROR: 
		strcpy( Buffer, "NETWORK ERROR" ); 
		break; 
	case STATUS_DFS_UNAVAILABLE: 
		strcpy( Buffer, "DFS UNAVAILABLE" ); 
		break; 
	case STATUS_LOG_FILE_FULL: 
		strcpy( Buffer, "LOG FILE FULL" ); 
		break; 
	case STATUS_INVALID_DEVICE_STATE: 
		strcpy( Buffer, "INVALID DEVICE STATE" ); 
		break; 
	case STATUS_NO_MEDIA_IN_DEVICE: 
		strcpy( Buffer, "NO MEDIA"); 
		break; 
	case STATUS_DISK_FULL: 
		strcpy( Buffer, "DISK FULL"); 
		break; 
	case STATUS_DIRECTORY_NOT_EMPTY: 
		strcpy( Buffer, "NOT EMPTY"); 
		break; 
 
		// 
		// Named pipe errors 
		// 
	case STATUS_INSTANCE_NOT_AVAILABLE: 
		strcpy( Buffer, "INSTANCE NOT AVAILABLE" ); 
		break; 
	case STATUS_PIPE_NOT_AVAILABLE: 
		strcpy( Buffer, "PIPE NOT AVAILABLE" ); 
		break; 
	case STATUS_INVALID_PIPE_STATE: 
		strcpy( Buffer, "INVALID PIPE STATE" ); 
		break; 
	case STATUS_PIPE_BUSY: 
		strcpy( Buffer, "PIPE BUSY" ); 
		break; 
	case STATUS_PIPE_DISCONNECTED: 
		strcpy( Buffer, "PIPE DISCONNECTED" ); 
		break; 
	case STATUS_PIPE_CLOSING: 
		strcpy( Buffer, "PIPE CLOSING" ); 
		break; 
	case STATUS_PIPE_CONNECTED: 
		strcpy( Buffer, "PIPE CONNECTED" ); 
		break; 
	case STATUS_PIPE_LISTENING: 
		strcpy( Buffer, "PIPE LISTENING" ); 
		break; 
	case STATUS_INVALID_READ_MODE: 
		strcpy( Buffer, "INVALID READ MODE" ); 
		break; 
	case STATUS_PIPE_EMPTY: 
		strcpy( Buffer, "PIPE EMPTY" ); 
		break; 
	case STATUS_PIPE_BROKEN: 
		strcpy( Buffer, "PIPE BROKEN" ); 
		break; 
	case STATUS_IO_TIMEOUT: 
		strcpy( Buffer, "IO TIMEOUT" ); 
		break; 
	default: 
		sprintf( Buffer, "* 0x%X", RetStat ); 
		break; 
	} 
	FsTPM_DbgPrint(("%s\n",Buffer)); 
}