GetInheritanceSourceA 函式 (aclapi.h)

不支援此函式的這個版本。 支援此函式的寬字元版本 GetInheritanceSourceW

語法

DWORD GetInheritanceSourceA(
  [in]           LPSTR                 pObjectName,
  [in]           SE_OBJECT_TYPE        ObjectType,
  [in]           SECURITY_INFORMATION  SecurityInfo,
  [in]           BOOL                  Container,
  [in, optional] GUID                  **pObjectClassGuids,
  [in]           DWORD                 GuidCount,
  [in]           PACL                  pAcl,
  [in, optional] PFN_OBJECT_MGR_FUNCTS pfnArray,
  [in]           PGENERIC_MAPPING      pGenericMapping,
  [out]          PINHERITED_FROMA      pInheritArray
);

參數

[in] pObjectName

物件名稱的指標,該物件會使用要檢查的 ACL。

[in] ObjectType

pObjectName 所指示的物件類型。 可能的值為SE_FILE_OBJECT、SE_REGISTRY_KEY、SE_DS_OBJECT和SE_DS_OBJECT_ALL。

[in] SecurityInfo

與物件搭配使用的 ACL 類型。 可能的值為DACL_SECURITY_INFORMATION或SACL_SECURITY_INFORMATION。

[in] Container

如果對像是容器物件,則為TRUE;如果對像是分葉物件,則為 FALSE。 請注意,唯一的分葉對像是SE_FILE_OBJECT。

[in, optional] pObjectClassGuids

可識別 與 pObjectName 相關聯的物件類型或名稱的選擇性 GUID 清單。 如果物件管理員只支援一個對象類別,或沒有與對象類別相關聯的 GUID,這可能是 NULL

[in] GuidCount

pObjectClassGuids 所指向的 GUID 數目。

[in] pAcl

物件的 ACL。

[in, optional] pfnArray

保留的。 將此參數設定為 NULL

[in] pGenericMapping

物件特定許可權的泛型許可權對應。

[out] pInheritArray

GetInheritanceSource 函式填滿繼承資訊的INHERITED_FROM結構數位指標。 呼叫端必須為 ACL 中的每個 ACE 配置足夠的記憶體。

傳回值

如果函式成功,函式會傳回ERROR_SUCCESS。

如果函式失敗,它會傳回 WinError.h 中定義的非零錯誤碼。

備註

GetInheritanceSource 函式會為INHERITED_FROM 結構中傳回的名稱配置記憶體。 當函式使用此記憶體完成時,呼叫程式必須呼叫 FreeInheritedFromArray來釋放它。 請注意,呼叫端必須提供數位本身的記憶體。 如果呼叫端已配置記憶體,呼叫端必須在呼叫 FreeInheritedFromArray之後釋放該記憶體。

此函式不會處理競爭條件。 如果您的線程在大約另一個線程變更物件 的安全性描述元時呼叫此函式,則此函式可能會失敗。

注意

aclapi.h 標頭會將 GetInheritanceSource 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 aclapi.h
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

FreeInheritedFromArray