我試圖從 ACCESS_ALLOWED_ACE 結構的 SidStart 值中獲取 pSID,但有一段時間無法獲取。
我找到了 PInvoke 用于 DWORD 對齊的記憶體句柄,但不幸的是我還不能添加評論。
該人從 ACE 指標偏移 8 處獲取 pSid,如下所示(不要介意“deniedAceIntPtr”)
IntPtr tempSid = IntPtr.Add(deniedAceIntPtr, 8);
我的問題是,8 來自哪里?
是因為 ACCESS_ALLOWED_ACE 中的 SidStart 出現在 ACE_HEADER 和 ACCESS_MASK 之后,它們都是 4 個位元組嗎?那么 4 4=8 并且 SidStart 在這兩個之后在 ACE 的 IntPtr 地址開始?
使用 ConvertSidToStringSidW 獲取 pSid 和更高版本的 SidString 對我有用。
uj5u.com熱心網友回復:
根據ACCESS_DENIED_ACE結構,可以直接參考SidStart,是的,sizeof
( ACE_HEADER ) sizeof
( ACCESS_MASK )=8BYTE。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493356.html