"1"や"0"などのデバイスマウントポイントの名称を取得します。 デバイスマウントポイントの名称を取得するには、DeviceIoControl()関数を利用します。IoControlCode にIOCTL_MOUNTDEV_QUERY_DEVICE_NAMEを渡す事で、MOUNTDEV_NAME構造体を取得する事ができ、その中に デバイスマウントポイントの名称がセットされています。
(注)このサンプルをコンパイルするには、WindowsDDKのヘッダファイルが必要です。
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <windows.h>
#include <Mountmgr.h>	// --> WindowsDDKです。
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコードを表示できるようにする
	setlocale( LC_ALL, "Japanese" );
	// "F:"は論理ドライブ名称です。
	HANDLE hDevice = CreateFile(L"¥¥¥¥.¥¥F:", 0,
                    FILE_SHARE_READ | FILE_SHARE_WRITE,
                    NULL, OPEN_EXISTING, 0, NULL);
	if ( hDevice != INVALID_HANDLE_VALUE ) {
		/*
			IOCTL_MOUNTDEV_QUERY_DEVICE_NAME
				(DDKのMountmgr.hのインクルードが必要です。
		*/
		{
			// 確保するメモリサイズの算出(MAX_PATH分)
			int iMountdevNameSize = sizeof( MOUNTDEV_NAME ) + sizeof( TCHAR ) * MAX_PATH;
			// メモリの確保
			MOUNTDEV_NAME* tpMountdevName = (MOUNTDEV_NAME*)new CHAR[ iMountdevNameSize ];
			if ( NULL != tpMountdevName ) {
				// バッファの長さをセット
				tpMountdevName->NameLength = MAX_PATH;
				DWORD dwResult = 0;
				DeviceIoControl(
					(HANDLE) hDevice						// handle to device
				  , IOCTL_MOUNTDEV_QUERY_DEVICE_NAME		// dwIoControlCode
				  , NULL									// lpInBuffer
				  , 0										// nInBufferSize
				  , (LPVOID)tpMountdevName					// output buffer
				  , (DWORD)iMountdevNameSize				// size of output buffer
				  , (LPDWORD)&dwResult				        // number of bytes returned
				  , (LPOVERLAPPED)NULL					    // OVERLAPPED structure
				);
				// 文字列終端をセット
				tpMountdevName->Name[ tpMountdevName->NameLength ] = L'¥0';
				/*
					結果を出力
						"¥Device¥CdRom0"などが表示されます
				*/
				std::wcout << L"IOCTL_MOUNTDEV_QUERY_DEVICE_NAME" << std::endl;
				std::wcout << L"¥t" << L"NameLength : " << tpMountdevName->NameLength << std::endl;
				std::wcout << L"¥t" << L"Name       : " << tpMountdevName->Name       << std::endl;
				// メモリ解放
				delete [] tpMountdevName;
			}
		}
		::CloseHandle( hDevice );
	}
	// 正常終了
	return 0;
}
IOCTL_MOUNTDEV_QUERY_DEVICE_NAME
        NameLength : 28
        Name       : \Device\CdRom0