internal static pInvokes.SafeNativeMethods.DOMAIN_CONTROLLER_INFO GetDomainInfo(string domain)
{
pInvokes.SafeNativeMethods.DOMAIN_CONTROLLER_INFO domainInfo = new pInvokes.SafeNativeMethods.DOMAIN_CONTROLLER_INFO();
IntPtr pDCI = IntPtr.Zero;
int ret = pInvokes.SafeNativeMethods.DsGetDcName(null, domain, 0, "", 0, out pDCI);
if (ret == 0)
{
domainInfo = (pInvokes.SafeNativeMethods.DOMAIN_CONTROLLER_INFO)Marshal.PtrToStructure(pDCI, typeof(pInvokes.SafeNativeMethods.DOMAIN_CONTROLLER_INFO));
}
else
{
LibraryLogging.Error("GetDomainInfo({0}) Error:{1} {2}", domain, ret, LastError(ret));
}
if (pDCI != IntPtr.Zero)
{
pInvokes.SafeNativeMethods.NetApiBufferFree(pDCI);
}
return domainInfo;
}