MountNtmsMedia 函式 (ntmsapi.h)
[從 Windows 7 和 Windows Server 2008 R2 起,已不再提供卸除式儲存管理員 。]
MountNtmsMedia 函式會同步掛接一或多個媒體片段。
語法
DWORD MountNtmsMedia(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpMediaId,
[in, out] LPNTMS_GUID lpDriveId,
[in] DWORD dwCount,
[in] DWORD dwOptions,
[in] int dwPriority,
[in] DWORD dwTimeout,
LPNTMS_MOUNT_INFORMATION lpMountInformation
);
參數
[in] hSession
OpenNtmsSession 函式所傳回之會話的句柄。
[in] lpMediaId
邏輯媒體或側邊的唯一標識符數位。
[in, out] lpDriveId
對應至 lpMediaId 參數中媒體清單的磁碟驅動器標識子陣列。 此陣列會指定要將媒體掛接到的磁碟驅動器清單,或接收媒體在作業完成時掛接到的磁碟驅動器清單。 請參閱下面的NTMS_MOUNT_SPECIFIC_DRIVE值。 如果在掛接完成之前 ,MountNtmsMedia 函式逾時,RSM 不會傳回磁碟驅動器清單。
[in] dwCount
在 lpMediaId 和 lpDriveId 參數中傳遞的媒體識別碼和磁碟驅動器識別碼數目。 請注意, lpMediaId 和 lpDriveId 必須指向長度相等陣列的第一個專案。
[in] dwOptions
選項。 此參數可以是下列一或多個值。
[in] dwPriority
RSM 用來允許存取磁碟驅動器的掛接優先順序。 優先順序範圍從 -15 到 15,最高優先順序為 15,預設值為 0。 此參數也可以採用下列其中一個常數。 除非需要特殊掛接優先順序,否則應用程式應該傳遞NTMS_PRIORITY_NORMAL。
值 | 意義 |
---|---|
|
不是時間關鍵性的掛接。 |
|
做為背景活動的掛接。 |
|
具有時間關鍵性的掛接。 |
|
最低優先順序掛接。 |
|
最高優先順序掛接。 |
[in] dwTimeout
允許掛接指定媒體的時間上限,以毫秒為單位。 將此參數設定為 INFINITE 以等到掛接完成為止。
lpMountInformation
此參數是保留的,而且應該是 NULL。
傳回值
此函式會傳回下列其中一個值。
值 | 意義 |
---|---|
|
NTMS_USE_ACCESS至包含媒體的媒體集區或媒體櫃遭到拒絕;其他安全性錯誤也是可行的,但會指出安全性子系統錯誤。 |
|
媒體或磁碟驅動器忙碌中。 |
|
CloseNtmsSession 函式已取消要求。 |
|
資料庫無法存取或損毀。 |
|
資料庫已滿。 |
|
指定的媒體和磁碟驅動器不在相同的連結庫中。 |
|
至少有一個指定的磁碟驅動器無效。 |
|
包含磁碟驅動器或媒體的連結庫無效。 |
|
指定的一或多個媒體無效,或媒體清單中有重複的媒體標識碼。 |
|
掛接期間發生非預期的媒體或裝置狀態。 |
|
媒體已離線且無法掛接。 |
|
處理期間發生記憶體配置失敗。 |
|
用戶已透過使用者介面取消要求。 |
|
停用執行掛接所需的一或多個資源。 |
|
媒體已掛接並可供使用。 |
|
嘗試取得一或多個必要資源時,逾時事件已過期。 掛接要求已取消。 |
|
媒體狀態會設定為 Completed,且已指定NTMS_MOUNT_WRITE值。 |
備註
MountNtmsMedia 函式會將要求排入佇列以掛接指定的媒體,然後等候 dwTimeout 參數中指定的毫秒數,讓掛接完成或偵測到錯誤。 如果 RSM 無法在 dwTimeout 到期之前完成掛接作業,NTMS 會取消要求並傳回錯誤。 如果指定的媒體位於離線連結庫中,應用程式可能會長時間遭到封鎖。 您可以使用 GetNtmsObjectInformation 函式 來判斷指定媒體的目前位置。 您也可以使用 NTMS_MOUNT_ERROR_OFFLINE 值,在媒體離線時產生立即錯誤,而不是操作員要求。
如果指定的媒體正在使用中,或磁碟驅動器無法使用,進程會封鎖到逾時值,並傳回ERROR_BUSY。 如果指定NTMS_MOUNT_ERROR_NOT_AVAILABLE值,當資源 (媒體或磁碟) 驅動器無法使用時,函式會傳回立即錯誤。
INFINITE 的逾時值可用來讓函式等候而不逾時。在 dwTimeout 參數中指定非零逾時值時,RSM 會等候 lpMediaId 中指定的所有媒體都掛接。 如果在掛接所有媒體之前經過指定的時間, MountNtmsMedia 函式會傳回錯誤並取消要求。 應用程式可以檢查傳回的狀態,並視需要重新提交要求。
使用單一呼叫指定多個要掛接的媒體時,所有指定的媒體都必須在單一連結庫中。 如果任何指定的媒體脫機,則所有媒體都不會掛接到所有媒體上線為止。
例如,在掛接磁碟驅動器狀態 (完成時,不會定義修正或變數模式) 。 應用程式必須設定磁碟驅動器。
CloseNtmsSession 函式可用來取消擱置的掛接。 預設行為是:
- 如果指定的媒體脫機,RSM 會張貼操作員要求以掛接媒體,而 MountNtmsMedia 函式會等候 dwTimeout 參數中指定的時間週期。
- 如果指定的媒體在在線,RSM 會要求掛接。
- 如果磁碟驅動器或媒體無法使用,RSM 會傳送要求, 而 MountNtmsMedia 函式會等候 dwTimeout 參數中指定的時間週期。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ntmsapi.h |
程式庫 | Ntmsapi.lib |
Dll | Ntmsapi.dll |