⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debugprint.cpp

📁 一个过滤层文件系统驱动的完整代码,实现了文件的加密,操作截获等
💻 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));
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -