Application/MFC

[MFC] 볼륨으로 디스크 번호 가져오기 (Get Volume Disk Number)

devsalix 2023. 3. 21. 15:34
728x90

볼륨의 디스크 번호를 가져오려면

 

아래와 같이 코드를 작성하면 됩니다

 

#include <winioctl.h>

int GetVolumDiskNumber(WCHAR cVolume)
{
	CString strVolume;
	strVolume.Format(_T("\\\\.\\%c:"), cVolume);

	HANDLE hVolume = CreateFile(
		strVolume,
		0,
		FILE_SHARE_READ | FILE_SHARE_WRITE, 
		NULL,
		OPEN_EXISTING,
		0,
		NULL);

	if(hVolume == INVALID_HANDLE_VALUE)
	{
		return -1;
	}

	VOLUME_DISK_EXTENTS vde;
	DWORD dwRet;
	if(DeviceIoControl(hVolume, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, &vde, sizeof(vde), &dwRet, NULL))
	{
		CloseHandle(hVolume);
		return (int)vde.Extents[0].DiskNumber;
	}

	CloseHandle(hVolume);
	return -1;
}

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형