QueryDosDevice DOSデバイスの情報を取得

Cの宣言:

DWORD QueryDosDevice(
	LPCTSTR DosDeviceName,
	LPTSTR ResultInfo,
	DWORD ResultInfoSize);

説明:

QueryDosDeviceには二つの機能がある。最初の機能は、現在システム中に存在する、DOSのデバイス名のリストを取得する。この場合、DosDeviceNameをNULLとしてQueryDosDeviceを呼び出す。

二つ目の機能は、指定されたDOSデバイス名にマッピングされているデバイスのデバイスパス名を取得する。この場合、DosDeviceNameにDOSデバイス名を指定する。

本関数はNTで使用可能。

引数の意味は以下の通り。
DosDeviceName (IN) 取得元のDOSデバイス名。または、NULLを指定する。
ResultInfo (OUT) DosDeviceNameがNULLでない場合、DosDeviceNameで指定したDOSデバイス名に対応するデバイスのデバイスパス名が返される。DosDeviceNameがNULLの場合、全てのDOSデバイス名のリストがMULTI_SZの形で返される。
ResultInfoSize (IN) ResultInfoのサイズ。

戻り値は、ResultInfoSizeに返された情報のサイズである。関数の実行に失敗した場合、0が返される。

Cのサンプル:

まず、MS-DOSデバイス名一覧を取得する。次に各々のMS-DOSデバイス名に対するデバイスパスを取得し、各ペアを表示する。
void DispDevicePath()
{
	char DeviceNames[1000];
	char DevicePath[1000];
	char *cp;

	/* DOSのデバイス名一覧を取得 */
	QueryDosDevice(NULL, DeviceNames, 1000);

	/* 各DOSデバイス名に対するデバイスパス名を表示 */
	cp = DeviceNames;
	while(*cp != '\0') {
		QueryDosDevice(cp, DevicePath, 1000);
		printf("%s ... %s\n", cp, DevicePath);
		
		while(*cp++ != '\0');
	}
	printf("\n");
}

(original text:1999/02/10 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。