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 /**