<Return[D]><Top>

DefineDosDevice

Declare Function Api_DefineDosDevice& Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags&, ByVal lpDeviceName$, ByVal lpTargetPath$)

Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long

アプリケーションで、MS-DOS デバイス名の定義、再定義、または削除を実行する。
MS-DOS デバイス名は、オブジェクト名空間にシンボリックリンクとして保存される。MS-DOS パスを対応するパスに変換するコードでは、これらのシンボリックリンクを使って MS-DOS デバイス名とドライブ名をマップする。DefineDosDevice 関数では、MS-DOS デバイスの名前空間の実装に使うシンボリックリンクを、アプリケーションで変更できる。

パラメータ
dwFlags
    DefineDosDevice 関数を制御するために、次の 1 つ以上の値を指定する。

    値                                                        

意味                                                                                                                 

    DDD_RAW_TARGET_PATH

関数は、lpTargetPath 文字列を MS-DOS パスからパスに変換せず、そのまま使う。

    DDD_REMOVE_DEFINITION

 

 

 

関数は、指定のデバイスの指定された定義を削除する。削除する定義を判断するために、デバイスのマッピングリスト調べ、lpTargetPath と一致する、このデバイスに関連付けられた各マッピングのプリフィックスを検索する。そして、最初に一致するマッピングを削除して関数に制御が戻る。
LpTargetPath パラメータに NULL、または NULL 文字列へのポインタを指定すると、関数は最初にデバイスに関連付けられたマッピングを削除し、最新のマッピングを取り出す。取り出すマッピングがない場合は、デバイス名を削除する。
この値が指定されていない場合、lpTargetPath パラメータが示す文字列がこのデバイスの新しいマッピングとなる。

    DDD_EXACT_MATCH_ON_REMOVE

 

この値と DDD_REMOVE_DEFINITION を指定すると、完全に一致するマッピングから、削除するマッピングを判断する。この値を指定すると、定義していないデバイス名を削除しないようにすることができる。

lpDeviceName
    この関数で定義、再定義、削除するデバイスを示す、MS-DOS デバイス名文字列へのポインタを指定する。ドライブ名(C、D など)を定

    義、再定義、削除する場合以外は、デバイス名文字列の終端にコロン(:)を指定してはならない。
lpTargetPath
    このデバイスを実装するパス文字列へのポインタを指定する。DDD_RAW_TARGET_PATH フラグが指定されている場合以外は、この文

    字列は MS-DOS パスである。DDD_RAW_TARGET_PATH フラグが指定されている場合は、この文字列はパス文字列になる。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    DefineDosDevice 関数を使うと、アプリケーションで MS-DOS デバイス名空間の実装に使うシンボリックリンクを作成、または変更できる。

    特定の MS-DOS 名に対する現在のマッピングを取得したり、システムが認識しているすべての MS-DOS デバイスのリストを取得するには、

    QueryDosDevice 関数を使う。
    MS-DOS デバイス名は、グローバルに適用される。MS-DOS デバイス名は、一度定義すると、明示的に削除したりシステムを再起動しな

    い限り、すべてのプロセスで保持される。

注意
    システムの起動時に定義されたドライブ名およびデバイス名の再定義や削除は、管理者以外は実行できない。