private static extern TPCANStatus Read(
     [MarshalAs(UnmanagedType.U2)] ushort Channel,
     out TpcanMsg MessageBuffer,
     IntPtr bufferPointer);
 /// <summary>
 ///     Reads a CAN message from the receive queue of a PCAN Channel.
 /// </summary>
 /// <param name="Channel">The handle of a PCAN Channel.</param>
 /// <param name="MessageBuffer">A TPCANMSG structure buffer to store the CAN message.</param>
 /// <returns>A TPCANStatus error code.</returns>
 public static TPCANStatus Read(ushort Channel, out TpcanMsg MessageBuffer)
 {
     return(Read(Channel, out MessageBuffer, IntPtr.Zero));
 }
 public static extern TPCANStatus Write(
     [MarshalAs(UnmanagedType.U2)] ushort Channel,
     ref TpcanMsg MessageBuffer);
 public static extern TPCANStatus Read(
     [MarshalAs(UnmanagedType.U2)] ushort Channel,
     out TpcanMsg MessageBuffer,
     out TpcanTimestamp TimestampBuffer);