IDiscRecorder2::AcquireExclusiveAccess 方法 (imapi2.h)
取得裝置的獨佔存取權。
語法
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
參數
[in] force
設定為 VARIANT_TRUE,以取得磁碟區的獨佔存取權,無論文件系統磁碟區是否可以卸除。 如果VARIANT_FALSE,只有在磁碟區上沒有掛接文件系統時,這個方法才會取得獨佔存取權。
[in] __MIDL__IDiscRecorder20000
字串,其中包含要求獨佔存取權之用戶端應用程式的易記名稱。 不能是 NULL 或長度為零的字串。 字串必須符合在 DDK 中找到之IOCTL_CDROM_EXCLUSIVE_ACCESS控件程式代碼的限制。
傳回值
成功時會傳回S_OK,但可能會因為實作而傳回其他成功碼。 下列錯誤碼通常會在作業失敗時傳回,但不代表唯一可能的錯誤值:
傳回碼 | Description |
---|---|
|
未指定的失敗。
值:0x80004005 |
|
裝置目前正由另一個應用程式使用。
值:0x80070005 |
|
一或多個自變數無效。
值:0x80070057 |
|
無法配置所需的記憶體。
值:0x8007000E |
|
裝置無法在逾時期間內接受命令。 這可能是裝置進入不一致的狀態所造成,或命令的逾時值可能需要增加。
值:0xC0AA020D |
|
指定的句柄無效。
值:6 |
|
指定的網路資源或裝置已不再可用。
值:55 |
|
上次作業期間與此錄製器相關聯的裝置已獨佔鎖定,導致此作業失敗。
值:0xC0AA0210 |
備註
您不應該呼叫這個方法來自行取得鎖定,因為 IDiscFormat2Data::Write 等寫入作業會為您取得鎖定。
每個錄製器都有鎖定計數。 第一次呼叫錄製器會鎖定裝置以進行獨佔存取。 應用程式可以使用 AcquireExclusiveAccess 方法多次在裝置上套用多個鎖定。 每個呼叫都會將鎖定計數遞增一個。
解除鎖定錄製器時,鎖定計數必須達到零,才能釋放其他客戶端的裝置。 呼叫 IDiscRecorder2::ReleaseExclusiveAccess 方法會將鎖定計數遞減一。
需要 對 AcquireExclusiveAccess 和 ReleaseExclusiveAccess 方法進行相同數目的呼叫,才能釋出裝置。 如果應用程式在保留獨佔存取權時意外結束或當機,CDROM.SYS 驅動程式會自動釋放這些獨佔鎖定。
如果裝置已鎖定,您可以呼叫 IDiscRecorder2::get_ExclusiveAccessOwner ,以擷取目前具有獨佔存取權的用戶端應用程式名稱。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista、Windows XP 與 SP2 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | imapi2.h |