示例#1
0
        private static DateTime PosixTimeToDateTime(NetlogonAPI.POSIX_TIME posixDCTime)
        {
            DateTime DCDateTime = new DateTime(
                posixDCTime.tm_year + 1900,
                posixDCTime.tm_mon,
                posixDCTime.tm_mday,
                posixDCTime.tm_hour,
                posixDCTime.tm_min,
                posixDCTime.tm_sec
                );

            return(DCDateTime);
        }
示例#2
0
        public uint GetDCTime(
            string domainFQDN,
            out DateTime DCTime
            )
        {
            DCTime = new DateTime();
            uint error = 0;

            NetlogonAPI.POSIX_TIME posixDCTime = new NetlogonAPI.POSIX_TIME();

            try
            {
                Logger.Log(String.Format("GetDCTime({0}) called",
                                         domainFQDN),
                           Logger.NetlogonLogLevel);

                error = NetlogonAPI.LWNetGetDCTime(
                    domainFQDN,
                    out posixDCTime);

                DCTime = PosixTimeToDateTime(posixDCTime);

                Logger.Log(String.Format("GetDCTime() returned {0}, error={1}",
                                         DCTime, error),
                           Logger.NetlogonLogLevel);
            }

            catch (Exception e)
            {
                Logger.LogException("Netlogon.GetDCTime", e);
                if (error == 0)
                {
                    error = CNetlogon.Definitions.LWNET_ERROR_INTEROP_EXCEPTION;
                }
            }

            return(error);
        }