DWORD WINAPI QueryDosDevice(
__in_opt LPCTSTR lpDeviceName,
__out LPTSTR lpTargetPath,
__in DWORD ucchMax
);
該函數可以取得MS-DOS 下的設備訊息,
1、 lpDeviceName 是輸入參數,是MS-DOS的硬體代號。
2、 lpTargetPath 是輸出參數,用來存儲返回值。
3、 ucchMax 為第2個參數的buff 大小。
// QueryDosDevice.cpp : 定義程式進入點// #include "stdafx.h" #define BUFSIZE 256 typedef TCHAR *PTCHAR; int _tmain(int argc, _TCHAR* argv[]){ setlocale (LC_ALL, "chs"); TCHAR szDevice[256] = {0}; // 存储磁盘根路径 TCHAR szDrive[3] = {0}; // 存储单个磁盘根路径 TCHAR szName[MAX_PATH]; // 存储 MS-DOS 设备信息 PTCHAR p = szDevice; GetLogicalDriveStrings(BUFSIZE, szDevice); _tprintf (TEXT("获取的 MS-DOS 设备名为:\n")); do { CopyMemory (szDrive, p, 2*sizeof(TCHAR)); // 将驱动器根路径拷贝到缓冲区,要去掉反斜杠 if ( !QueryDosDevice(szDrive, szName, BUFSIZE) ) { _tprintf (TEXT("QueryDosDevice 获取失败 : %d\n"), GetLastError()); return (-1); } UINT uNameLen = _tcslen(szName); // 设备名长度 if (uNameLen < MAX_PATH) { _tprintf (TEXT("%s %s\n"), szDrive, szName); } while (*p++); // 空循环,到下一个 NULL (C:\NULLD:\NULLE:\) } while (*p); // 还有其它盘符 return 0;}