cvolume.h

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

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

        $Id: CVolume.h,v 1.5 2002/08/06 20:09:34 dallen Exp $
____________________________________________________________________________*/

#ifndef Included_CVolume_h	// [
#define Included_CVolume_h

#include "CErrorState.h"
#include "CDriverImpFactory.h"

_PGP_BEGIN

// Class CVolume

class CVolume : public CErrorState
{
	NOT_COPYABLE(CVolume)
	DECLARE_IMPHOST(CVolume)

public:
	enum {kUseRemovableFlag = FALSE};

public:
	PGPBoolean	IsMounted() const;
	PGPBoolean	IsUnmounted() const;
	PGPBoolean	IsAttachedToVolume() const;
	PGPBoolean	IsLockedForIO() const;
	PGPBoolean	IsLockedForFormat() const;

	const char *	Root() const;
	const char *	DeviceName() const;
	PGPUInt32		BlockSize() const;
	PGPUInt64		TotalBlocks() const;

	PGPBoolean	RootsEqual(const char *root) const;
	PGPBoolean	HasOpenFiles();

	CComboError	AttachVolume(const char *root, const char *deviceName = NULL);
	void		DetachVolume();

	CComboError	Mount(const char *deviceName, const char *root, 
		PGPUInt64 totalBlocks, PGPUInt32 blockSize, 
		const void *ioHandlerFunc, void *refPtr, 
		PGPBoolean readOnly = FALSE);
	CComboError	Unmount(PGPBoolean isForced = FALSE);

	CComboError	LockForIO();
	CComboError	LockForFormat();
	CComboError	Unlock();

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

_PGP_END

#endif	// ] Included_CVolume_h

⌨️ 快捷键说明

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