DefineDosDeviceW 函式 (fileapi.h)

定義、重新定義或刪除 MS-DOS 裝置名稱。

語法

BOOL DefineDosDeviceW(
  [in]           DWORD   dwFlags,
  [in]           LPCWSTR lpDeviceName,
  [in, optional] LPCWSTR lpTargetPath
);

參數

[in] dwFlags

DefineDosDevice函式的可控制層面。 此參數可以是下列一或多個值。

值 意義
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
如果指定這個值以及 DDD_REMOVE_DEFINITION,函式會使用完全相符專案來判斷要移除的對應。 使用此值可確保您不會刪除未定義的專案。
DDD_NO_BROADCAST_SYSTEM
0x00000008
請勿廣播 WM_SETTINGCHANGE 訊息。 根據預設,此訊息會廣播,以通知殼層和應用程式變更。
DDD_RAW_TARGET_PATH
0x00000001
依原樣使用 lpTargetPath 字串。 否則,它會從 MS-DOS 路徑轉換成路徑。
DDD_REMOVE_DEFINITION
0x00000002
移除指定裝置的指定定義。 若要判斷要移除的定義,此函式會逐步引導裝置的對應清單,以針對與此裝置相關聯的每個對應前置詞尋找 lpTargetPath 的相符專案。 符合的第一個對應是移除的對應,然後函式會傳回 。

如果 lpTargetPath 是 Null 或 Null 字串的指標,函式將會移除與裝置相關聯的第一個對應,並快顯最近推送的對應。 如果沒有留下任何快顯專案,將會移除裝置名稱。

如果未指定此值, lpTargetPath 參數所指向的字串將會成為此裝置的新對應。

[in] lpDeviceName

MS-DOS 裝置名稱字串的指標,指定函式所定義、重新定義或刪除的裝置。 除非定義、重新定義或刪除磁碟機號,否則裝置名稱字串不得具有冒號做為最後一個字元。 例如,磁片磁碟機 C 會是字串 「C:」。 在此情況下,不允許尾端反斜線 (\) 。

[in, optional] lpTargetPath

將實作此裝置之路徑字串的指標。 除非指定 DDD_RAW_TARGET_PATH 旗標,否則字串是 MS-DOS 路徑字串,在此情況下,此字串是路徑字串。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。

備註

MS-DOS 裝置名稱會儲存為物件命名空間中的連接點。 將 MS-DOS 路徑轉換成對應路徑的程式碼會使用這些連接點來對應 MS-DOS 裝置和磁碟機號。 DefineDosDevice函式可讓應用程式修改用來實作 MS-DOS 裝置命名空間的連接點。

若要擷取特定 MS-DOS 裝置名稱的目前對應,或取得系統已知的所有 MS-DOS 裝置清單,請使用 QueryDosDevice 函式。

若要定義跨開機而非網路共用持續執行的磁碟機號指派,請使用 SetVolumeMountPoint 函式。 如果要掛接的磁片區已經有指派的磁碟機號,請使用 DeleteVolumeMountPoint 函式來移除指派。

除非使用者是系統管理員,否則系統開機時間定義的磁碟機號和裝置名稱會受到保護,免于重新定義和刪除。

從 Windows XP 開始,此函式會為未在其本機 MS-DOS 裝置命名空間的 「LocalSystem」 內容中執行的呼叫端建立裝置名稱。 如果呼叫端是在 「LocalSystem」 內容中執行,函式會在全域 MS-DOS 裝置命名空間中建立裝置名稱。 如需詳細資訊,請參閱定義 MS DOS 裝置名稱和檔案名、路徑和命名空間。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定 否
SMB 3.0 透明容錯移轉 (TFO) 否
具有向外延展檔案共用的 SMB 3.0 (SO) 否
叢集共用磁片區檔案系統 (CsvFS) 否
彈性檔案系統 (ReFS) 否
 

SMB 不支援磁片區管理功能。 針對 CsvFs,新的名稱將不會複寫到叢集上的其他節點。

範例

如需範例,請參閱 編輯磁碟機號指派。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 fileapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

磁片區管理功能