cpgpdiskimpdrv98.h

来自「PGP8.0源码 请认真阅读您的文件包然后写出其具体功能」· C头文件 代码 · 共 65 行

H
65
字号
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: CPGPdiskImpDrv98.h,v 1.3 2002/08/06 20:09:31 dallen Exp $
____________________________________________________________________________*/

#ifndef Included_CPGPdiskImpDrv98_h	// [
#define Included_CPGPdiskImpDrv98_h

#include "pgpDiskBase.h"

#include "FileSys.h"
#include "CPGPdiskImp.h"

#include "CIop.h"

_PGP_BEGIN

// Class CPGPdiskImpDrv98

class CPGPdiskImpDrv98 : public CPGPdiskImp
{
	friend class CDriverImpFactoryDrv98;

private:
	CPGPdiskImpDrv98() : mBufferToWatchFor(NULL) { }

	CComboError	Read(void *buf, PGPUInt64 posInBlocks, 
		PGPUInt32 nBlocks) const;
	CComboError	Write(const void *buf, PGPUInt64 posInBlocks, 
		PGPUInt32 nBlocks);

	CComboError	Unmount(PGPBoolean isForced);

private:
	PGPUInt8			*mBufferToWatchFor;
	mutable PGPUInt8	mBootBlock[kPGPdiskBlockSize];

	CComboError	CalcBlockSizeOfHost(const char *path, 
		PGPUInt32& hostBlockSize) const;

	CComboError	GetDevParamsFat16(FileSys::DevParamsFat16& dp16) const;
	CComboError	GetDevParamsFat32(FileSys::DevParamsFat32& dp32) const;

	CComboError	GetFsId(FileSys::Type& fsId) const;
	CComboError	GetMID(FileSys::MID& mid) const;

	CComboError	PerformPremountTasks();

	PGPUInt16	ProcessIorGenIoctl(CIop& iop);
	PGPUInt16	ProcessIorReadWrite(CIop& iop);

	void		ProcessIopCallbackAux(CIop& iop);
	static void	ProcessIopCallback(void *refPtr);

	CComboError	QueueIopToIoThread(CIop& iop);

	PGPUInt32	ProcessExternalIo(void *ioPacket, PGPBoolean& wasCompleted);
};

_PGP_END

#endif	// ] Included_CPGPdiskImpDrv98_h

⌨️ 快捷键说明

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