From 866ba2a7b9ca654d30450da029304fd6aa7d5936 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 11 Dec 2013 14:21:59 -0800 Subject: [PATCH] Handle device info. --- .../rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c | 12 ++++++++++-- src/protocols/rdp/rdp_fs.h | 6 ++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c index 1b86ca00..9aea4a31 100644 --- a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c +++ b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c @@ -97,8 +97,16 @@ void guac_rdpdr_fs_process_query_size_info(guac_rdpdr_device* device, wStream* i void guac_rdpdr_fs_process_query_device_info(guac_rdpdr_device* device, wStream* input_stream, int file_id, int completion_id) { - /* STUB */ - GUAC_RDP_DEBUG(2, "[file_id=%i] STUB", file_id); + wStream* output_stream = guac_rdpdr_new_io_completion(device, + completion_id, STATUS_SUCCESS, 12); + + GUAC_RDP_DEBUG(2, "[file_id=%i]", file_id); + + Stream_Write_UINT32(output_stream, 8); + Stream_Write_UINT32(output_stream, FILE_DEVICE_DISK); /* DeviceType */ + Stream_Write_UINT32(output_stream, 0); /* Characteristics */ + + svc_plugin_send((rdpSvcPlugin*) device->rdpdr, output_stream); } diff --git a/src/protocols/rdp/rdp_fs.h b/src/protocols/rdp/rdp_fs.h index 06813501..20d32ebe 100644 --- a/src/protocols/rdp/rdp_fs.h +++ b/src/protocols/rdp/rdp_fs.h @@ -174,6 +174,12 @@ #define FILE_DIRECTORY_FILE 0x00000001 #define FILE_NON_DIRECTORY_FILE 0x00000040 +/* + * File device types. + */ + +#define FILE_DEVICE_DISK 0x00000007 + #define SEC_TO_UNIX_EPOCH 11644473600 /**