public static extern int libssh2_channel_wait_eof(
     SshChannelHandle channel);
 public static extern int libssh2_channel_process_startup(
     SshChannelHandle channel,
     [MarshalAs(UnmanagedType.LPStr)] string request,
     uint requestLength,
     [MarshalAs(UnmanagedType.LPStr)] string message,
     uint messageLength);
 public static extern int libssh2_channel_write_ex(
     SshChannelHandle channel,
     int streamId,
     byte[] buffer,
     IntPtr bufferSize);
 public static extern int libssh2_channel_close(
     SshChannelHandle channel);
 public static extern int libssh2_channel_setenv_ex(
     SshChannelHandle channel,
     [MarshalAs(UnmanagedType.LPStr)] string variableName,
     uint variableNameLength,
     [MarshalAs(UnmanagedType.LPStr)] string variableValue,
     uint variableValueLength);
 public static extern int libssh2_channel_request_pty_size_ex(
     SshChannelHandle channel,
     int width,
     int height,
     int widthPx,
     int heightPx);
 public static extern int libssh2_channel_handle_extended_data2(
     SshChannelHandle channel,
     LIBSSH2_CHANNEL_EXTENDED_DATA mode);
 public static extern int libssh2_channel_get_exit_status(
     SshChannelHandle channel);
        //---------------------------------------------------------------------
        // Ctor.
        //---------------------------------------------------------------------

        internal SshSessionChannelBase(
            SshSession session,
            SshChannelHandle channelHandle)
            : base(session, channelHandle)
        {
        }
        //---------------------------------------------------------------------
        // Ctor.
        //---------------------------------------------------------------------

        internal SshShellChannel(
            SshSession session,
            SshChannelHandle channelHandle)
            : base(session, channelHandle)
        {
        }