亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? debug.c

?? FSD file system driver
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* 
 * FFS File System Driver for Windows
 *
 * debug.c
 *
 * 2004.5.6 ~
 *
 * Lee Jae-Hong, http://www.pyrasis.com
 *
 * See License.txt
 *
 */

#if DBG

#include "ntifs.h"
#include "ffsdrv.h"
#include "stdarg.h"
#include "stdio.h"


/* Globals */

extern PFFS_GLOBAL FFSGlobal;

#define SYSTEM_PROCESS_NAME "System"

extern PFFS_GLOBAL FFSGlobal;

LONG   DebugLevel = DBG_USER;

ULONG  ProcessNameOffset = 0;

/* Definitions */

#ifdef ALLOC_PRAGMA
#pragma alloc_text (PAGE, FFSPrintf)
#pragma alloc_text (PAGE, FFSNIPrintf)
#pragma alloc_text (PAGE, FFSGetProcessNameOffset)
#pragma alloc_text (PAGE, FFSDbgPrintCall)
#pragma alloc_text (PAGE, FFSDbgPrintComplete)
#pragma alloc_text (PAGE, FFSNtStatusToString)
#endif // ALLOC_PRAGMA

/* Static Definitions ****************************************************/

static PUCHAR IrpMjStrings[] = {
	"IRP_MJ_CREATE",
	"IRP_MJ_CREATE_NAMED_PIPE",
	"IRP_MJ_CLOSE",
	"IRP_MJ_READ",
	"IRP_MJ_WRITE",
	"IRP_MJ_QUERY_INFORMATION",
	"IRP_MJ_SET_INFORMATION",
	"IRP_MJ_QUERY_EA",
	"IRP_MJ_SET_EA",
	"IRP_MJ_FLUSH_BUFFERS",
	"IRP_MJ_QUERY_VOLUME_INFORMATION",
	"IRP_MJ_SET_VOLUME_INFORMATION",
	"IRP_MJ_DIRECTORY_CONTROL",
	"IRP_MJ_FILE_SYSTEM_CONTROL",
	"IRP_MJ_DEVICE_CONTROL",
	"IRP_MJ_INTERNAL_DEVICE_CONTROL",
	"IRP_MJ_SHUTDOWN",
	"IRP_MJ_LOCK_CONTROL",
	"IRP_MJ_CLEANUP",
	"IRP_MJ_CREATE_MAILSLOT",
	"IRP_MJ_QUERY_SECURITY",
	"IRP_MJ_SET_SECURITY",
	"IRP_MJ_POWER",
	"IRP_MJ_SYSTEM_CONTROL",
	"IRP_MJ_DEVICE_CHANGE",
	"IRP_MJ_QUERY_QUOTA",
	"IRP_MJ_SET_QUOTA",
	"IRP_MJ_PNP"
};

static PUCHAR FileInformationClassStrings[] = {
	"Unknown FileInformationClass 0",
	"FileDirectoryInformation",
	"FileFullDirectoryInformation",
	"FileBothDirectoryInformation",
	"FileBasicInformation",
	"FileStandardInformation",
	"FileInternalInformation",
	"FileEaInformation",
	"FileAccessInformation",
	"FileNameInformation",
	"FileRenameInformation",
	"FileLinkInformation",
	"FileNamesInformation",
	"FileDispositionInformation",
	"FilePositionInformation",
	"FileFullEaInformation",
	"FileModeInformation",
	"FileAlignmentInformation",
	"FileAllInformation",
	"FileAllocationInformation",
	"FileEndOfFileInformation",
	"FileAlternateNameInformation",
	"FileStreamInformation",
	"FilePipeInformation",
	"FilePipeLocalInformation",
	"FilePipeRemoteInformation",
	"FileMailslotQueryInformation",
	"FileMailslotSetInformation",
	"FileCompressionInformation",
	"FileObjectIdInformation",
	"FileCompletionInformation",
	"FileMoveClusterInformation",
	"FileQuotaInformation",
	"FileReparsePointInformation",
	"FileNetworkOpenInformation",
	"FileAttributeTagInformation",
	"FileTrackingInformation"
};

static PUCHAR FsInformationClassStrings[] = {
	"Unknown FsInformationClass 0",
	"FileFsVolumeInformation",
	"FileFsLabelInformation",
	"FileFsSizeInformation",
	"FileFsDeviceInformation",
	"FileFsAttributeInformation",
	"FileFsControlInformation",
	"FileFsFullSizeInformation",
	"FileFsObjectIdInformation"
};

/*
 * FFSPrintf
 *   This function is variable-argument, level-sensitive debug print routine.
 *   If the specified debug level for the print statement is lower or equal
 *   to the current debug level, the message will be printed.
 *
 * Arguments:
 *   DebugPrintLevel - Specifies at which debugging level the string should
 *                     be printed
 *   DebugMessage - Variable argument ascii c string
 *
 * Return Value:
 *   N/A
 *
 * NOTES: 
 *   N/A
 */

VOID
FFSPrintf(
	LONG  DebugPrintLevel,
	PCHAR DebugMessage,
	...)
{
	va_list             ap;
	LARGE_INTEGER       CurrentTime;
	TIME_FIELDS         TimeFields;

	ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);

	if (DebugPrintLevel <= DebugLevel)
	{
		CHAR Buffer[0x100];
		va_start(ap, DebugMessage);

		KeQuerySystemTime(&CurrentTime);
		RtlTimeToTimeFields(&CurrentTime, &TimeFields);

		vsprintf(Buffer, DebugMessage, ap);

		DbgPrint(DRIVER_NAME": %2.2d:%2.2d:%2.2d:%3.3d %8.8x:   %s",
				TimeFields.Hour, TimeFields.Minute,
				TimeFields.Second, TimeFields.Milliseconds,
				PsGetCurrentThread(), Buffer);

		va_end(ap);
	}


	ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);

} // FFSPrintf()


/*
 * FFSNIPrintf
 *   This function is variable-argument, level-sensitive debug print routine.
 *   If the specified debug level for the print statement is lower or equal
 *   to the current debug level, the message will be printed.
 *
 * Arguments:
 *   DebugPrintLevel - Specifies at which debugging level the string should
 *                     be printed
 *   DebugMessage - Variable argument ascii c string
 *
 * Return Value:
 *   N/A
 *
 * NOTES: 
 *   N/A
 */

VOID
FFSNIPrintf(
	LONG  DebugPrintLevel,
	PCHAR DebugMessage,
	...)
{
	va_list             ap;
	LARGE_INTEGER       CurrentTime;
	TIME_FIELDS         TimeFields;

	ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);

	if (DebugPrintLevel <= DebugLevel)
	{
		CHAR Buffer[0x100];
		va_start(ap, DebugMessage);

		KeQuerySystemTime(&CurrentTime);
		RtlTimeToTimeFields(&CurrentTime, &TimeFields);

		vsprintf(Buffer, DebugMessage, ap);

		DbgPrint(DRIVER_NAME": %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s",
				TimeFields.Hour, TimeFields.Minute,
				TimeFields.Second, TimeFields.Milliseconds,
				PsGetCurrentThread(), Buffer);

		va_end(ap);
	}


	ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);

} // FFSNIPrintf()

ULONG 
FFSGetProcessNameOffset(
	VOID)
{
	PEPROCESS   Process;
	ULONG       i;

	Process = PsGetCurrentProcess();

	for(i = 0; i < PAGE_SIZE; i++)
	{
		if(!strncmp(
					SYSTEM_PROCESS_NAME,
					(PCHAR) Process + i,
					strlen(SYSTEM_PROCESS_NAME)))
		{
			return i;
		}
	}

	FFSPrint((DBG_ERROR, ": *** FsdGetProcessNameOffset failed ***\n"));

	return 0;
}


VOID
FFSDbgPrintCall(
	IN PDEVICE_OBJECT   DeviceObject,
	IN PIRP             Irp)
{
	PIO_STACK_LOCATION      IoStackLocation;
	PFILE_OBJECT            FileObject;
	PUCHAR                  FileName;
	PFFS_FCB                Fcb;
	FILE_INFORMATION_CLASS  FileInformationClass;
	FS_INFORMATION_CLASS    FsInformationClass;

	IoStackLocation = IoGetCurrentIrpStackLocation(Irp);

	FileObject = IoStackLocation->FileObject;

	FileName = "Unknown";

	if (DeviceObject == FFSGlobal->DeviceObject)
	{
		FileName = "\\" DRIVER_NAME;
	}
	else if (FileObject && FileObject->FsContext)
	{
		Fcb = (PFFS_FCB)FileObject->FsContext;

		if (Fcb->Identifier.Type == FFSVCB)
		{
			FileName = "\\Volume";
		}
		else if (Fcb->Identifier.Type == FFSFCB && Fcb->AnsiFileName.Buffer)
		{
			FileName = Fcb->AnsiFileName.Buffer;
		}
	}

	switch (IoStackLocation->MajorFunction)
	{
		case IRP_MJ_CREATE:

			FileName = NULL;

			if (DeviceObject == FFSGlobal->DeviceObject)
			{
				FileName = "\\" DRIVER_NAME;
			}
			else if (IoStackLocation->FileObject->FileName.Length == 0)
			{
				FileName = "\\Volume";
			}

			if (FileName)
			{
				FFSPrintNoIndent((
							DBG_TRACE, "%s %s %s\n",
							FFSGetCurrentProcessName(),
							IrpMjStrings[IoStackLocation->MajorFunction],

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二三区| 91精品国产综合久久精品性色| 一本大道综合伊人精品热热| 日韩欧美成人激情| 一区二区在线看| 国产在线精品一区二区三区不卡 | 欧美高清你懂得| 日本一区二区三区四区在线视频| 天天免费综合色| 色www精品视频在线观看| 久久久.com| 久久99蜜桃精品| 555www色欧美视频| 日日欢夜夜爽一区| 欧美午夜精品久久久久久孕妇| 国产精品人人做人人爽人人添| 精品亚洲aⅴ乱码一区二区三区| 欧美三级资源在线| 亚洲男人的天堂在线aⅴ视频| 国产a精品视频| 国产婷婷一区二区| 国产成人精品网址| 久久久综合视频| 国产精品自拍网站| 久久综合资源网| 国产一区二区导航在线播放| 精品国产百合女同互慰| 久久精品国产成人一区二区三区| 欧美精品免费视频| 五月天网站亚洲| 日韩一区二区精品在线观看| 免费看日韩精品| 日韩欧美aaaaaa| 国产福利一区二区三区在线视频| 久久在线免费观看| 国产精品一区二区三区99| 久久久蜜桃精品| 成人黄色网址在线观看| 国产精品久久久久精k8| 97se狠狠狠综合亚洲狠狠| 亚洲天堂免费看| 91福利视频在线| 亚洲成人av福利| 欧美放荡的少妇| 久久aⅴ国产欧美74aaa| 久久色在线视频| av高清久久久| 亚洲国产毛片aaaaa无费看 | 国产欧美日韩在线观看| 麻豆成人免费电影| 在线免费亚洲电影| 欧美男人的天堂一二区| 国产日本欧美一区二区| 精一区二区三区| 欧美一级高清片在线观看| 狠狠色狠狠色合久久伊人| 日本一区二区三级电影在线观看| 国产91精品精华液一区二区三区| 最新热久久免费视频| 欧美日韩一区二区在线观看| 国产一区二区免费视频| 最好看的中文字幕久久| 7777女厕盗摄久久久| 国产精品自拍三区| 亚洲妇女屁股眼交7| 久久久久亚洲蜜桃| 一本色道**综合亚洲精品蜜桃冫| 亚洲成va人在线观看| 精品国产乱码久久| 欧美私人免费视频| 久久99精品久久久久久国产越南| 国产精品美女久久久久久2018| 欧美视频在线播放| 成熟亚洲日本毛茸茸凸凹| 五月婷婷久久丁香| 亚洲色图色小说| 亚洲精品一区二区三区四区高清 | 粉嫩在线一区二区三区视频| 亚洲一区av在线| 国产日韩av一区二区| 欧美日韩www| 91精品办公室少妇高潮对白| 久久国产人妖系列| 亚洲成av人片| 亚洲丝袜精品丝袜在线| 久久在线免费观看| 3atv在线一区二区三区| 色婷婷综合久色| 国产ts人妖一区二区| 蜜桃久久久久久| 亚洲国产精品一区二区久久恐怖片 | 国产精品免费视频一区| 精品国产免费久久| 欧美电影一区二区三区| 欧美伊人久久大香线蕉综合69| 国产91富婆露脸刺激对白| 美女网站一区二区| 日韩国产在线一| 亚洲国产sm捆绑调教视频| 亚洲精品精品亚洲| 亚洲男人电影天堂| 亚洲女女做受ⅹxx高潮| 亚洲欧洲成人自拍| 亚洲欧洲性图库| 中文在线资源观看网站视频免费不卡| 欧美大片在线观看一区二区| 欧美精品在线视频| 欧美高清你懂得| 4hu四虎永久在线影院成人| 在线视频一区二区三| 在线欧美日韩国产| 欧美性生活久久| 91 com成人网| 日韩免费一区二区三区在线播放| 欧美一区二区三区在线视频| 欧美一区二区三级| 精品日韩99亚洲| 久久精品免视看| 日本一区二区三区四区| 国产欧美日韩另类一区| 国产精品电影院| 亚洲美女少妇撒尿| 亚洲成人动漫在线观看| 视频一区欧美日韩| 精品综合免费视频观看| 国产福利不卡视频| 99久久伊人精品| 欧美色成人综合| 精品国产精品一区二区夜夜嗨| 欧美精品一区二区三区蜜桃视频| 久久久久99精品国产片| 国产精品传媒视频| 亚洲综合丝袜美腿| 日本不卡视频在线| 国产高清久久久| 欧美三级日韩三级国产三级| 欧美一级艳片视频免费观看| 久久免费视频色| 亚洲精品少妇30p| 久久精品国产成人一区二区三区| 国产老女人精品毛片久久| 色哟哟一区二区三区| 欧美一区欧美二区| 国产精品护士白丝一区av| 亚洲在线视频免费观看| 国产做a爰片久久毛片| 97久久久精品综合88久久| 欧美日韩亚洲综合在线| 国产视频视频一区| 亚洲高清在线视频| 国产精品一区一区三区| 欧美三级在线看| 欧美激情资源网| 日本不卡一区二区三区| 99久久99久久精品免费观看| 91精品国产丝袜白色高跟鞋| 国产精品美女久久久久久久| 日韩电影在线一区二区| 成人av在线一区二区三区| 91精品国产手机| 一区二区三区四区在线播放| 国产一区二区三区免费看| 欧美在线不卡视频| 中文av一区二区| 韩国成人福利片在线播放| 欧美天天综合网| 亚洲色欲色欲www| 国产美女在线精品| 日韩一级在线观看| 亚洲综合小说图片| aa级大片欧美| 国产精品亲子伦对白| 理论电影国产精品| 3d成人h动漫网站入口| 亚洲精品乱码久久久久久久久| 国产成人av电影在线| 日韩欧美国产高清| 日韩福利电影在线| 欧美日韩国产bt| 亚洲一二三四久久| 一本久道久久综合中文字幕| 国产三级三级三级精品8ⅰ区| 日韩电影免费在线| 欧美三级视频在线播放| 一区二区三区四区高清精品免费观看 | 天天色综合天天| 欧美日本一道本在线视频| 亚洲另类春色国产| 91啦中文在线观看| 亚洲色图在线播放| 色噜噜狠狠一区二区三区果冻| 亚洲欧洲av在线| 91在线丨porny丨国产| 国产精品拍天天在线| 成人av一区二区三区| 国产精品欧美经典| 94-欧美-setu| 亚洲成a天堂v人片| 91精品国产福利| 久久99精品国产麻豆不卡|