111 if (forceSuccess && someFailed)
116 if (
item.GetType() != targetType)
118 identityReferenceCollection2.Add(
item);
123 return identityReferenceCollection;
159 if (sourceAccounts ==
null)
163 if (sourceAccounts.
Count == 0)
172 global::Interop.Advapi32.MARSHALLED_UNICODE_STRING[]
array =
new global::Interop.Advapi32.MARSHALLED_UNICODE_STRING[sourceAccounts.
Count];
176 if (!(sourceAccount is
NTAccount nTAccount))
180 array[num].Buffer = nTAccount.ToString();
186 array[num].MaximumLength = (ushort)(
array[num].Length + 2);
191 uint num2 = global::Interop.Advapi32.LsaLookupNames2(safeLsaPolicyHandle, 0, sourceAccounts.Count,
array, out referencedDomains, out sids);
205 uint error = global::Interop.Advapi32.LsaNtStatusToWinError(num2);
213 if (num2 == 0 || num2 == 263)
215 sids.Initialize((uint)sourceAccounts.Count, (uint)
Marshal.
SizeOf<global::Interop.LSA_TRANSLATED_SID2>());
217 global::Interop.LSA_TRANSLATED_SID2[] array2 =
new global::Interop.LSA_TRANSLATED_SID2[sourceAccounts.Count];
218 sids.ReadArray(0uL, array2, 0, array2.Length);
219 for (
int i = 0; i < sourceAccounts.Count; i++)
221 global::Interop.LSA_TRANSLATED_SID2 lSA_TRANSLATED_SID = array2[i];
233 identityReferenceCollection.
Add(sourceAccounts[i]);
240 for (
int j = 0; j < sourceAccounts.Count; j++)
242 identityReferenceCollection.
Add(sourceAccounts[j]);
245 return identityReferenceCollection;
249 safeLsaPolicyHandle?.
Dispose();