--- sourceforge.net/trunk/rdesktop/types.h 2004/01/21 11:08:40 568 +++ sourceforge.net/trunk/rdesktop/types.h 2004/01/21 14:40:40 569 @@ -7,7 +7,7 @@ it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -140,10 +140,73 @@ typedef struct _DEVICE_FNS { - NTSTATUS(*create) (HANDLE * handle); - NTSTATUS(*close) (HANDLE handle); - NTSTATUS(*read) (HANDLE handle, uint8 * data, uint32 length, uint32 * result); - NTSTATUS(*write) (HANDLE handle, uint8 * data, uint32 length, uint32 * result); - NTSTATUS(*device_control) (HANDLE handle, uint32 request, STREAM in, STREAM out); + NTSTATUS (*create)(uint32 device, uint32 desired_access, uint32 share_mode, uint32 create_disposition, uint32 flags_and_attributes, char *filename, HANDLE *handle); + NTSTATUS (*close)(HANDLE handle); + NTSTATUS (*read)(HANDLE handle, uint8 *data, uint32 length, uint32 offset, uint32 *result); + NTSTATUS (*write)(HANDLE handle, uint8 *data, uint32 length, uint32 offset, uint32 *result); + NTSTATUS (*device_control)(HANDLE handle, uint32 request, STREAM in, STREAM out); } DEVICE_FNS; + + +typedef struct rdpdr_device_info +{ + uint32 device_type; + HANDLE handle; + char name[8]; + char *local_path; + void *pdevice_data; +} +RDPDR_DEVICE; + +typedef struct rdpdr_serial_device_info +{ + int dtr; + uint32 baud_rate, + queue_in_size, + queue_out_size, + wait_mask, + read_interval_timeout, + read_total_timeout_multiplier, + read_total_timeout_constant, + write_total_timeout_multiplier, + write_total_timeout_constant, + posix_wait_mask; + uint8 stop_bits, + parity, + word_length; + struct termios *ptermios, + *pold_termios; +} +SERIAL_DEVICE; + +typedef struct rdpdr_parallel_device_info +{ + char *driver, + *printer; + uint32 queue_in_size, + queue_out_size, + wait_mask, + read_interval_timeout, + read_total_timeout_multiplier, + read_total_timeout_constant, + write_total_timeout_multiplier, + write_total_timeout_constant, + posix_wait_mask, + bloblen; + uint8 *blob; +} +PARALLEL_DEVICE; + +typedef struct rdpdr_printer_info +{ + FILE *printer_fp; + char *driver, + *printer; + uint32 bloblen; + uint8 *blob; + BOOL default_printer; +} +PRINTER; + +