解决方案是使用 GetNamedSecurityInfo 和参数 pSecurityDescriptor 以及 DACL 信息请求。
// Get Length
var securityDescriptorLength = /* Win32 Call */ GetSecurityDescriptorLength( pSecurityDescriptor );
// Define array to copy
var securityDescriptorDataArray = new byte[ securityDescriptorLength ];
// Copy by marshal to defined array
/* Win32 Call */ Marshal.Copy( pSecurityDescriptor, securityDescriptorDataArray, 0, ( int ) securityDescriptorLength );
// If path is directory
var securityInfo = new DirectorySecurity( );
securityInfo.SetSecurityDescriptorBinaryForm( securityDescriptorDataArray );
现在您可以使用获取 AccessRulessecurityInfo.GetAccessRules()