同步處理物件安全性和存取權限

Windows 安全性模型可讓您控制事件、mutex、號志和可等候計時器物件的存取。 計時器佇列、連結變數和重要區段物件不是安全性實體。 如需詳細資訊,請參閱 存取控制模型

呼叫CreateEventCreateMutexCreateSemaphoreCreateWaitableTimer函式時,您可以指定進程間同步處理物件的安全性描述元。 如果您指定 Null,物件會取得預設的安全性描述元。 存取控制清單 (ACL) 同步處理物件的預設安全性描述項中,來自建立者的主要或模擬權杖。

若要取得或設定事件、mutex、旗號或可等候計時器物件的安全性描述元,請呼叫GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfo 或 SetSecurityInfo函式

CreateEventCreateMutexCreateSemaphoreCreateWaitableTimer所傳回的控制碼具有新物件的完整存取權。 當您呼叫 OpenEventOpenMutexOpenSemaphoreOpenWaitableTimer 函式時,系統會根據物件的安全性描述元檢查所要求的存取權限。

進程間同步處理物件的有效存取權限包括 標準存取權限 和某些物件特定的存取權限。 下表列出所有物件所使用的標準存取權限。

意義
DELETE (0x00010000L) 刪除物件的必要專案。
READ_CONTROL (0x00020000L) 需要讀取物件之安全描述元中的資訊,不包括 SACL 中的資訊。 若要讀取或寫入 SACL,您必須要求 ACCESS_SYSTEM_SECURITY 存取權限。 如需詳細資訊,請參閱 SACL 存取權限
SYNCHRONIZE (0x00100000L) 使用同步物件的權限。 這可讓執行緒等到物件處於訊號狀態為止。
WRITE_DAC (0x00040000L) 需要修改 物件之安全描述元中的 DACL。
WRITE_OWNER (0x00080000L) 變更物件之安全描述元中擁有者的必要專案。

 

下表列出事件物件的物件特定存取權限。 除了標準存取權限之外,也支援這些許可權。

意義
EVENT_ALL_ACCESS (0x1F0003) 事件物件的所有可能存取權限。 只有在您的應用程式需要標準存取權限和 EVENT_MODIFY_STATE授與以外的存取權時,才使用此許可權。 使用此存取權會增加應用程式必須由系統管理員執行的可能性。
EVENT_MODIFY_STATE (0x0002) 修改SetEventResetEvent 和 PulseEvent函式所需的狀態存取

 

下表列出 mutex 物件的物件特定存取權限。 除了標準存取權限之外,也支援這些許可權。

意義
MUTEX_ALL_ACCESS (0x1F0001) Mutex 物件的所有可能存取權限。 只有在您的應用程式需要超出標準存取權限授與的存取權時,才使用此許可權。 使用此存取權會增加應用程式必須由系統管理員執行的可能性。
MUTEX_MODIFY_STATE (0x0001) 保留供未來使用。

 

下表列出號志物件的物件特定存取權限。 除了標準存取權限之外,也支援這些許可權。

意義
SEMAPHORE_ALL_ACCESS (0x1F0003) 號志物件的所有可能存取權限。 只有在您的應用程式需要超出標準存取權限和 SEMAPHORE_MODIFY_STATE授與的存取權時,才使用此許可權。 使用此存取權會增加應用程式必須由系統管理員執行的可能性。
SEMAPHORE_MODIFY_STATE (0x0002) 修改 ReleaseSemaphore 函式所需的狀態存取。

 

下表列出可等候計時器物件的物件特定存取權限。 除了標準存取權限之外,也支援這些許可權。

意義
TIMER_ALL_ACCESS (0x1F0003) 所有可等候計時器物件的可能存取權限。 只有當您的應用程式需要超出標準存取權限授與的存取權,並 TIMER_MODIFY_STATE時,才使用此許可權。 使用此存取權會增加應用程式必須由系統管理員執行的可能性。
TIMER_MODIFY_STATE (0x0002) 修改 SetWaitableTimerCancelWaitableTimer 函式所需的狀態存取。
TIMER_QUERY_STATE (0x0001) 保留供未來使用。

 

若要讀取或寫入進程間同步處理物件的 SACL,您必須要求 ACCESS_SYSTEM_SECURITY 存取權限。 如需詳細資訊,請參閱 存取控制清單 (ACL) SACL 存取權限