4.1.4.2.18 LookupFPO

 procedure LookupFPO(
   fCanonicalEx: boolean,
   obj: DSName,
   result: DS_NAME_RESULT_ITEMW
   ): DS_NAME_RESULT_ITEMW

Informative summary of behavior: LookupFPO is a helper function that attempts to resolve the domain and account name of an object, with an appropriate status value.

 pReferencedDomain: PLSAPR_REFERENCED_DOMAIN_LIST
 TranslatedName: LSAPR_TRANSLATED_NAMES_EX
 NtStatus: NTSTATUS
  
 pReferencedDomain := null
 TranslatedName := null
  
 NtStatus := TranslateFPOToName(obj, ADR(pReferencedDomain),
                                ADR(TranslatedName))
 if (NtStatus = 0x0 and pReferencedDomain ≠ null and TranslatedName ≠ null)
     then
   result.pDomain^ :=
     pReferencedDomains^.Domains[TranslatedName.DomainIndex].Name 
   if fCanonicalNameEx then
     result.pName^ := result.pDomain^ + {"\n"} + TranslatedName.Name
   else
     result.pName^ := result.pDomain^ + {"\"} + TranslatedName.Name
   endif
   result.status := DS_NAME_ERROR_IS_FPO
   return result
 else
   result.status := DS_NAME_ERROR_RESOLVING
 endif
  
 /* leave result as-is. */
 return result