www.pudn.com > vdksrc.zip > VDiskExtVmdk.h
/*
VDiskExtVmdk.h
VMDK sparse extent class
Copyright (c) 2003 Ken Kato
*/
#ifndef _VDISKEXTVMDK_H_
#define _VDISKEXTVMDK_H_
#include "VDiskExt.h"
class VDiskExtVmdk : public VDiskExt
{
public:
VDiskExtVmdk();
virtual ~VDiskExtVmdk();
//
// Load and obtain parameters from extent file
//
virtual VDKSTAT Load(HANDLE hFile);
//
// Check parameter consistency
//
virtual VDKSTAT Check();
//
// Update extent header (cowd / vmdk sparse)
//
virtual VDKSTAT Update();
//
// Create actural extent file
//
virtual VDKSTAT Create(ULONG flags);
//
// Returns extent type
//
virtual ULONG GetFileType() { return VDK_FILETYPE_VMDK; }
//
// VMDK specific members
//
public:
//
// Get VMDK header
//
PVMDK_HEADER GetHeader() { return &m_Header; }
protected:
//
// Update header and actual file size
//
VDKSTAT UpdateFile(HANDLE hFile);
//
// Write grain directory entries to the file
//
VDKSTAT WriteGrainDir(
HANDLE hFile,
ULONG offset,
ULONG gd_size,
ULONG gt_count,
ULONG gt_size);
VMDK_HEADER m_Header;
};
#endif // _VDISKEXTVMDK_H_