物件名稱
具名物件可讓您輕鬆地讓進程共用物件控制碼。 進程建立具名事件、mutex、旗號或計時器物件之後,其他進程可以使用名稱呼叫適當的函式, ( OpenEvent、 OpenMutex、 OpenSemaphore或 OpenWaitableTimer) 開啟物件的控制碼。 名稱比較區分大小寫。
事件、號志、mutex、可等候計時器、檔案對應和工作物件的名稱會共用相同的命名空間。 如果您嘗試使用另一種類型物件正在使用的名稱來建立物件,則函式會失敗,而且 GetLastError 會傳回 ERROR_INVALID_HANDLE。 因此,建立具名物件時,請使用唯一的名稱,並務必檢查函式傳回值是否有重複的名稱錯誤。
如果您嘗試使用相同類型物件使用的名稱來建立物件,函式會成功,將控制碼傳回至現有的物件,而 GetLastError 會 傳回ERROR_ALREADY_EXISTS。 例如,如果在呼叫 CreateMutex 函式中指定的名稱符合現有 Mutex 物件的名稱,此函式會傳回現有物件的控制碼。 在此情況下, CreateMutex 的呼叫相當於 對 OpenMutex 函式的呼叫。 讓多個進程使用相同的 Mutex 來使用 CreateMutex ,因此相當於讓一個進程呼叫 CreateMutex ,而另一個進程呼叫 OpenMutex,不同之處在于它不需要先確定已啟動建立進程。 不過,針對 mutex 物件使用這項技術時,呼叫進程都不應該要求 mutex 的立即擁有權。 如果多個進程要求立即擁有權,則很難預測哪些進程實際取得初始擁有權。
終端機服務環境具有事件、號志、Mutex、可等候計時器、檔案對應物件和工作物件的全域命名空間。 此外,每個終端機服務用戶端會話都有自己的個別命名空間給這些物件。 終端機服務用戶端進程可以使用物件名稱搭配 「Global\」 或 「Local\」 前置詞,在全域或會話命名空間中明確建立物件。 如需詳細資訊,請參閱 核心物件命名空間。 使用終端機服務會話實作快速使用者切換, (每個使用者登入不同的會話) 。 核心物件名稱必須遵循終端機服務概述的指導方針,讓應用程式可以支援多個使用者。
同步處理物件可以在私用命名空間中建立。 如需詳細資訊,請參閱 物件命名空間。
相關主題