CnCrypt代码 之 为磁盘设备分配和移除盘符
2016-07-19 03:19
288 查看
BOOL ChangeMountPoint(int nDriveNo, LPCTSTR lpDevice, BOOL bAddMountPoint) { BOOL bResult = FALSE; TCHAR szDriveLetterAndSlash[4] = { 0 }; TCHAR szDriveLetter[3] = { 0 }; TCHAR szUniqueVolumeName[MAX_PATH] = { 0 }; szDriveLetter[0] = (WCHAR)(nDriveNo + L'A'); szDriveLetter[1] = TEXT(':'); szDriveLetter[2] = TEXT('\0'); szDriveLetterAndSlash[0] = (WCHAR)(nDriveNo + L'A'); szDriveLetterAndSlash[1] = TEXT(':'); szDriveLetterAndSlash[2] = TEXT('\\'); szDriveLetterAndSlash[3] = TEXT('\0'); if (bAddMountPoint) { //Try to Attach lpDevice to lpDriveLetter bResult = DefineDosDevice(DDD_RAW_TARGET_PATH, szDriveLetter, lpDevice); if (bResult) { if (!GetVolumeNameForVolumeMountPoint(szDriveLetterAndSlash, szUniqueVolumeName, MAX_PATH)) { //Can't Find Attached lpDevice 's VolumeName szUniqueVolumeName[0] = '\0'; } bResult = DefineDosDevice( DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE, szDriveLetter, lpDevice); if (!bResult) return bResult; bResult = SetVolumeMountPoint(szDriveLetterAndSlash, szUniqueVolumeName); } } else { bResult = DeleteVolumeMountPoint(szDriveLetterAndSlash); } return bResult; }
相关文章推荐
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- 肯特·贝克:改变人生的代码整理魔法
- 逻辑卷管理(LVM) Linux 用户指南
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- CreateWeb.vbs 代码
- Lua中编译执行代码相关的函数详解
- 更有效率的css代码编写第1/3页
- 代码中到底应不应当写注释?
- 磁盘已满造成的mysql启动失败问题分享
- SQL语言查询基础:连接查询 联合查询 代码
- 论坛头像随机变换代码
- 非常有用的9个PHP代码片段
- .NET 常用功能和代码小结
- C#实现压缩HTML代码的方法
- asp编程中常用的javascript辅助代码第1/2页
- 高质量PHP代码的50个实用技巧必备(下)