QueryDosDeviceW

MS-DOS デバイス名に関する情報を取得する。(QueryDosDeviceW)

QueryDosDeviceW lpDeviceName, lpTargetPath, ucchMax

lpDeviceName : [wstr] 照会対象を指定する MS-DOS デバイス名文字列。デバイス名の末尾にバックスラッシュを付けることはできない。たとえば "C:\\" ではなく "C:" を使用する。このパラメータは NULL でもよい。その場合、QueryDosDevice 関数は既存の全 MS-DOS デバイス名の一覧を lpTargetPath が指すバッファに格納する。
lpTargetPath : [wstr] 照会結果を受け取るバッファへのポインタ。関数はこのバッファに 1 つ以上の NULL 終端文字列を書き込む。最後の NULL 終端文字列の後にはさらに NULL が続く。lpDeviceName が非 NULL の場合、関数は lpDeviceName で指定される個別の MS-DOS デバイスに関する情報を取得する。バッファに最初に格納される NULL 終端文字列はそのデバイスの現在のマッピングである。それ以外の NULL 終端文字列は、そのデバイスに対する削除されていない以前のマッピングを表す。lpDeviceName が NULL の場合、関数は既存の全 MS-DOS デバイス名の一覧を取得する。バッファに格納される各 NULL 終端文字列は、既存の MS-DOS デバイス(例: \Device\HarddiskVolume1 や \Device\Floppy0)の名前である。
ucchMax : [int] lpTargetPath が指すバッファに格納できる TCHAR の最大数。

(プラグイン / モジュール : kernel32.dll)

解説

MS-DOS デバイス名に関する情報を取得する。(QueryDosDeviceW)

[戻り値]
関数が成功した場合、戻り値は lpTargetPath が指すバッファに格納された TCHAR 数である。関数が失敗した場合、戻り値は 0
である。拡張エラー情報を取得するには GetLastError を呼び出す。バッファが小さすぎる場合、関数は失敗し、最終エラーコードは
ERROR_INSUFFICIENT_BUFFER となる。

[備考]
DefineDosDevice 関数により、アプリケーションは MS-DOS
デバイス名前空間を実装するジャンクションの作成と変更ができる。Windows Server 2003 および Windows XP:
QueryDosDevice はまずローカル MS-DOS デバイス名前空間を検索する。デバイス名が見つからない場合、続いてグローバル
MS-DOS デバイス名前空間を検索する。既存の全 MS-DOS デバイス名を照会する場合、返されるデバイス名の一覧は
"LocalSystem" コンテキストで実行されているかに依存する。その場合、グローバル MS-DOS
デバイス名前空間に含まれるデバイス名のみが返される。そうでない場合、グローバルおよびローカル MS-DOS
デバイス名前空間のデバイス名の連結が返される。両方の名前空間に同じデバイス名が存在する場合、QueryDosDevice はローカル
MS-DOS デバイス名前空間のエントリを返す。グローバルおよびローカル MS-DOS デバイス名前空間と MS-DOS
デバイス名のアクセス性の変更に関する詳細は Defining an MS DOS Device Name を参照。Windows 8
および Windows Server 2012 において、この関数は次の技術でサポートされる。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs