TrueCrypt原理与系统开发(3):TrueCrypt Mount卸载虚拟磁盘

本文介绍TrueCrypt中卸载虚拟磁盘的过程及其实现原理。详细解析UnmountVolume函数的作用及参数,并讨论了卸载过程中可能出现的问题及其处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

第三部分、TrueCrypt Mount卸载虚拟磁盘

      加载虚拟磁盘之后,可以创建受虚拟磁盘加密保护的文档,之后卸载虚拟磁盘,创建的文档则加密保存在加密卷中,这步操作起来比较简单,那么,在TrueCrypt实际是如何实现的呢?

      TrueCrypt另一个核心函数卸载虚拟磁盘函数UnmountVolume,接受三个函数,分别是传入的窗口句柄、磁盘分区的序号和是否强制卸载的标识,其在TrueCrypt中的原型是

 

 

 

      下面我们来看下每个参数具体的含义

 参数 类型 含义 示例
 hwndDlg HWND 传入的窗口句柄 NULL
 driveNo int 加载的磁盘分区序号 8
 forceUnmount BOOL 是否强制卸载 FALSE

      下面我们来看具体的实例

 

 

 

      当unmounted为1的时候卸载虚拟磁盘成功,为0的时候卸载失败,那么失败的原因有哪些呢?

      1、UNMOUNT_FAILED 卸载出错

      2、UNMOUNT_LOCK_FAILED 加载的虚拟磁盘打开或者虚拟磁盘内的文件还在打开等

      当为第二种情况时,TrueCrypt的处理情形是提出提示,虚拟磁盘还打开着,提示用户是否强制卸载,如果强制卸载的话,创建的文件将不会保存,虚拟磁盘强制退出,如果不强制卸载的话,重复执行卸载虚拟磁盘的操作。

 

 

 

      但是,有些应用场景不希望用户执行强制卸载的情况,因为那样的话,用户操作的文档则不会保存,因此需要继续友好的提示用户虚拟磁盘还继续打开着,因此我们可以当判断result == ERR_FILES_OPEN && !Silent的时候直接return FALSE,或者注释forced = TRUE,一直提示用户,可以根据具体的应用场景加以修改。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值