-1
我有一個HANDLE
的過程中,這可能會,也可能不會,是當前運行的進程的句柄。以下是關於手柄對象的已知信息:如何確定進程句柄是否是當前進程?
- 手柄僅具有
PROCESS_TERMINATE
訪問權限。 - 手柄不是僞句柄,即不的
GetCurrentProcess
返回值。
有沒有辦法知道句柄是否是當前進程的?
我曾考慮過使用GetProcessId
,但不幸的是,由於該句柄沒有PROCESS_QUERY_LIMITED_INFORMATION
訪問權限,因此無法訪問被拒絕的錯誤。
不是一個確切的重複;句柄只能終止訪問的事實是相關的。投票重新開放。 –
嘗試使用'DuplicateHandle'來創建一個具有'PROCESS_QUERY_LIMITED_INFORMATION'權限的新句柄。 (如果訪問被拒絕,這是不太可能的句柄,你的過程 - 但如果你想成爲安全的,你可以檢查在運行過程中的ACL,並在必要時改變它) –
@HarryJohnston感謝,我會嘗試它。有沒有關於'DuplicateHandle'何時允許添加額外訪問權限的文檔?該函數的文檔聲明如下,這不是很有用:「在某些情況下,新的句柄可以擁有比原始句柄更多的訪問權限,但是在其他情況下,'DuplicateHandle'不能創建具有更多訪問權限的句柄比原來的「。 – Paul