📄 cpgpdiskimpdrvnt.h
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: CPGPdiskImpDrvNT.h,v 1.5 2002/08/06 20:09:31 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_CPGPdiskImpDrvNT_h // [
#define Included_CPGPdiskImpDrvNT_h
#include <ntdddisk.h>
#include "CIrp.h"
#include "CSecurityToken.h"
#include "CPGPdiskImp.h"
_PGP_BEGIN
// Class CPGPdiskImpDrvNT
class CPGPdiskImpDrvNT : public CPGPdiskImp
{
friend class CDriverImpFactoryDrvNT;
private:
CComboError Mount(const char *path, const char *root,
const char *deviceName, PGPdiskEncryptionAlgorithm algorithm,
const void *exportedContext, PGPUInt32 sizeContext,
PGPUInt64 firstDataBlock, PGPUInt64 numDataBlocks,
const void *ioHandlerFunc, void *refPtr, PGPUInt32 procId,
PGPBoolean isReadOnly);
CComboError Unmount(PGPBoolean isForced);
private:
CPGPdiskImpDrvNT() { }
private:
CSecurityToken mTokenForMountUnmount;
CSecurityToken mTokenForIo;
CComboError CalcBlockSizeOfHost(const char *path,
PGPUInt32& hostBlockSize) const;
void CalcNTFakeDriveLayout(DRIVE_LAYOUT_INFORMATION *pDLI) const;
void CalcNTFakeGeometry(DISK_GEOMETRY *pGeom) const;
void CalcNTFakePartitionInfo(PARTITION_INFORMATION *pPartInfo) const;
NTSTATUS ProcessIrpMjRead(CIrp& irp);
NTSTATUS ProcessIrpMjWrite(CIrp& irp);
void ProcessIrpCallbackAux(CIrp& irp,
PGPBoolean &wasIrpCompleted);
static void _cdecl ProcessIrpCallback(void *refPtr);
CComboError QueueIrpToIoThread(CIrp& irp);
NTSTATUS ProcessExtIrpMjDeviceControl(CIrp& irp);
PGPUInt32 ProcessExternalIo(void *ioPacket, PGPBoolean& wasCompleted);
};
_PGP_END
#endif // ] Included_CPGPdiskImpDrvNT_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -