TrueCrypt代码 之 通过磁盘设备名获取到对应盘符

本文介绍如何利用TrueCrypt驱动程序的CC_IOCTL_GET_RESOLVED_SYMLINK指令,从磁盘设备名获取对应的Windows盘符。

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

TrueCrypt 提供了一种通过驱动获取磁盘设备路径对应盘符的方法,需要依赖TrueCrypt驱动提供的CC_IOCTL_GET_RESOLVED_SYMLINK消息来获取,代码如下

BOOL ResolveSymbolicLink(LPCWSTR wzSymLinkName, PWSTR wzTargetName)
{
	BOOL	bResult;
	DWORD	dwBytesReturned;
	RESOLVE_SYMLINK_STRUCT rsResolve;

	memset(&rsResolve, 0, sizeof(rsResolve));
	wcscpy((PWSTR)&rsResolve.SymLinkName, wzSymLinkName);

	bResult = DeviceIoControl(g_hDriver, CC_IOCTL_GET_RESOLVED_SYMLINK, &rsResolve, sizeof(rsResolve), &rsResolve, sizeof(rsResolve), &dwBytesReturned, NULL);

	wcscpy(wzTargetName, (PWSTR)&rsResolve.TargetName);

	return bResult;
}

// Returns drive letter number assigned to device (-1 if none)
int  GetDevicePathRealDriveNo(LPCWSTR lpDevicePath)
{
	int nDriveNo;
	WCHAR wzSymLinkName[CC_LONG_PATH + 1];
	WCHAR wzTempTargetName[CC_LONG_PATH + 1];
	WCHAR wzTargetName[CC_LONG_PATH + 1];

	if (!ResolveSymbolicLink(lpDevicePath, wzTargetName))
	{
		wcscpy(wzTarge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值