共用方式為


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 的相符專案。 符合的第一個對應是移除的對應,然後函式會傳回 。

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

如果未指定此值, 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

磁片區管理功能