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

📄 umessagelog.cpp

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 CPP
字号:
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: UMessageLog.cpp,v 1.4 2002/08/06 20:09:32 dallen Exp $
____________________________________________________________________________*/

#include "pgpClassesConfig.h"

#include "CString.h"
#include "UDebug.h"

#include "CUnicodeString.h"
#include "DriverMain.h"
#include "..\\PGPdiskMessages.h"
#include "UMessageLog.h"

_USING_PGP

// UMessageLog functions

CComboError 
UMessageLog::Output(const char *message)
{
	CComboError	error;

	UDebug::DebugOut("PGPdisk: Outputting to log \"%s\"", message);

	CUnicodeString	errString(message);
	error = errString.Status();

	if (error.IsntError())
	{
		errString.Resize(errString.Length() + 1);
		errString.SetAt(errString.Length(), '\0');

		PUNICODE_STRING			pLogUniData		= errString.Get();
		PGPUInt8				sizePacket		= sizeof(
			IO_ERROR_LOG_PACKET) + pLogUniData->Length + sizeof(WCHAR);
		PIO_ERROR_LOG_PACKET	pIoLogPacket	= static_cast<
			PIO_ERROR_LOG_PACKET>(IoAllocateErrorLogEntry(
			DriverMain::GetDriverObjectInitParam(), sizePacket));

		if (IsNull(pIoLogPacket))
			error.pgpErr = kPGPError_OutOfMemory;

		if (error.IsntError())
		{
			WCHAR	*insertStrPtr;

			pIoLogPacket->MajorFunctionCode	= 0;
			pIoLogPacket->RetryCount		= 0;
			pIoLogPacket->DumpDataSize		= 0;
			pIoLogPacket->NumberOfStrings	= 1;
			pIoLogPacket->StringOffset		= sizeof(IO_ERROR_LOG_PACKET);
			pIoLogPacket->EventCategory		= 0;
			pIoLogPacket->ErrorCode			= PGPDISK_ERROR_CODE;
			pIoLogPacket->UniqueErrorValue	= 0;
			pIoLogPacket->FinalStatus		= STATUS_SUCCESS;
			pIoLogPacket->SequenceNumber	= 0;
			pIoLogPacket->IoControlCode		= 0;

			pIoLogPacket->DeviceOffset.QuadPart = 0;

			insertStrPtr = reinterpret_cast<WCHAR *>(
				reinterpret_cast<PGPByte *>(pIoLogPacket) + 
				pIoLogPacket->StringOffset);

			pgpCopyMemory(pLogUniData->Buffer, insertStrPtr, 
				pLogUniData->Length);

			IoWriteErrorLogEntry(pIoLogPacket);
		}
	}

	if (error.IsError())
		UDebug::DebugOut("PGPdisk: Message log output failure!");

	return error;
}

⌨️ 快捷键说明

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