NetRemoteTOD (netapi32)
Last changed: -85.176.13.93

.
Summary
Returns the time of day information from a specified server.

C# Signature:

[DllImport("Netapi32.dll", CharSet=CharSet.Unicode)]
static extern int NetRemoteTOD(string UncServerName, ref IntPtr BufferPtr);

VB Signature:

     <DllImport("netapi32", CharSet:=CharSet.Unicode)> Function NetRemoteTOD( _
    ByVal UncServerName As String, ByRef BufferPtr As IntPtr) As Integer
    End Function!!!!User-Defined Types:

None.

Notes:

[2004-05-20 Nicholas Paldino]

Make sure to call NetApiBufferFree on the IntPtr returned in the Buffer parameter.

Tips & Tricks:

Please add some!

Sample Code:

    'get remote computer system time
    Public Function GetRemoteComputerSystemTime(ByVal CName As String, _
        ByRef TimeZone As Integer) As DateTime

    'The pointer.
    Dim pintBuffer As IntPtr = IntPtr.Zero

    'Set pointer to the time of day info structure.
    Dim pintError As Integer = NetRemoteTOD("\\" + CName, pintBuffer)

    ' Get the structure.
    Dim pobjInfo As TIME_OF_DAY_INFO = _
        CType(Marshal.PtrToStructure(pintBuffer, _
        GetType(TIME_OF_DAY_INFO)), TIME_OF_DAY_INFO)

    ' Free the buffer.
    NetApiBufferFree(pintBuffer)

    'set date
    Dim d As New DateTime( _
        Convert.ToInt32(pobjInfo.tod_year), Convert.ToInt32(pobjInfo.tod_month), _
        Convert.ToInt32(pobjInfo.tod_day), Convert.ToInt32(pobjInfo.tod_hours), _
        Convert.ToInt32(pobjInfo.tod_mins), Convert.ToInt32(pobjInfo.tod_secs))

    'correct time zone, the function NetRemoteTOD returns a GMT time
    TimeZone = pobjInfo.tod_timezone
    d = d.AddMinutes(-pobjInfo.tod_timezone)

    Return d    'return local time

    End Function

Alternative Managed API:

Do you know one? Please contribute it!

Documentation