Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining Server Behavior of the IDL_DRSCrackNames Method Server Behavior of the IDL_DRSCrackNames Method

Informative summary of behavior: The IDL_DRSCrackNames method is a generic method that is used to look up information in the directory. The most common usage is looking up directory object names that are provided in one format (for example, SPNs) and returning them in a different format (for example, DNs). One special mode occurs when the input format is not specified, in which case the server tries to "guess" the format of the name by following some heuristics. The method can also be used to look up generic information in the directory, such as the list of sites or the list of servers in a specific site.

     [in, ref] DRS_HANDLE hDrs,
     [in] DWORD dwInVersion,
     [in, ref, switch_is(dwInVersion)] DRS_MSG_CRACKREQ *pmsgIn,
     [out, ref] DWORD *pdwOutVersion,
     [out, ref, switch_is(*pdwOutVersion)]
         DRS_MSG_CRACKREPLY *pmsgOut)
 ULONG result
 ValidateDRSInput(hDrs, 12)
 pdwOutVersion^ := 1
 pmsgOut^.V1.pResult^.cItems := 0
 pmsgOut^.V1.pResult^.rItems := null
 if dwInVersion ≠ 1 then
 msgIn := pmsgIn^.V1
 if DS_NAME_FLAG_GCVERIFY in msgIn.dwFlags and
    not IsGC() then
 /* Enable FPO resolution for non-DC callers. */
 if ClientUUID(hDrs) = NTDSAPI_CLIENT_GUID then
   msgIn.dwFlags := msgIn.dwFlags + {DS_NAME_FLAG_PRIVATE_RESOLVE_FPOS}
 result = CrackNames(pmsgIn^.V1, ADR(msgOut))
 if(result = ERROR_SUCCESS) then
    pmsgOut^.V1.pResult := ADR(msgOut)
 return result
© 2015 Microsoft