mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[channels,rdpdr] FILE_DIRECTORY_INFORMATION::FileName as WCHAR
This commit is contained in:
@@ -21,4 +21,5 @@ set(${MODULE_PREFIX}_SRCS rdpdr_main.c rdpdr_main.h)
|
|||||||
|
|
||||||
set(${MODULE_PREFIX}_LIBS freerdp)
|
set(${MODULE_PREFIX}_LIBS freerdp)
|
||||||
|
|
||||||
|
option(WITH_WCHAR_FILE_DIRECTORY_INFORMATION "Build with WCHAR FILE_DIRECTORY_INFORMATION::FileName" OFF)
|
||||||
add_channel_server_library(${MODULE_PREFIX} ${MODULE_NAME} ${CHANNEL_NAME} FALSE "VirtualChannelEntry")
|
add_channel_server_library(${MODULE_PREFIX} ${MODULE_NAME} ${CHANNEL_NAME} FALSE "VirtualChannelEntry")
|
||||||
|
|||||||
@@ -2344,7 +2344,7 @@ static UINT rdpdr_server_read_file_directory_information(wLog* log, wStream* s,
|
|||||||
if (fileNameLength / sizeof(WCHAR) > ARRAYSIZE(fdi->FileName))
|
if (fileNameLength / sizeof(WCHAR) > ARRAYSIZE(fdi->FileName))
|
||||||
return ERROR_INVALID_DATA;
|
return ERROR_INVALID_DATA;
|
||||||
|
|
||||||
#if defined(__MINGW32__)
|
#if defined(__MINGW32__) || defined(WITH_WCHAR_FILE_DIRECTORY_INFORMATION)
|
||||||
if (Stream_Read_UTF16_String(s, fdi->FileName, fileNameLength / sizeof(WCHAR)))
|
if (Stream_Read_UTF16_String(s, fdi->FileName, fileNameLength / sizeof(WCHAR)))
|
||||||
return ERROR_INVALID_DATA;
|
return ERROR_INVALID_DATA;
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -239,4 +239,10 @@
|
|||||||
#cmakedefine WITHOUT_FREERDP_3x_DEPRECATED
|
#cmakedefine WITHOUT_FREERDP_3x_DEPRECATED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** Build FILE_DIRECTORY_INFORMATION::FileName with type WCHAR instead of char
|
||||||
|
*
|
||||||
|
* @since version 3.20.0
|
||||||
|
*/
|
||||||
|
#cmakedefine WITH_WCHAR_FILE_DIRECTORY_INFORMATION
|
||||||
|
|
||||||
#endif /* FREERDP_CONFIG_H */
|
#endif /* FREERDP_CONFIG_H */
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#define FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H
|
#define FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H
|
||||||
|
|
||||||
#include <freerdp/api.h>
|
#include <freerdp/api.h>
|
||||||
|
#include <freerdp/config.h>
|
||||||
#include <freerdp/types.h>
|
#include <freerdp/types.h>
|
||||||
#include <freerdp/channels/wtsvc.h>
|
#include <freerdp/channels/wtsvc.h>
|
||||||
#include <freerdp/channels/rdpdr.h>
|
#include <freerdp/channels/rdpdr.h>
|
||||||
@@ -59,7 +60,11 @@ typedef struct
|
|||||||
LARGE_INTEGER EndOfFile;
|
LARGE_INTEGER EndOfFile;
|
||||||
LARGE_INTEGER AllocationSize;
|
LARGE_INTEGER AllocationSize;
|
||||||
UINT32 FileAttributes;
|
UINT32 FileAttributes;
|
||||||
|
#if defined(WITH_WCHAR_FILE_DIRECTORY_INFORMATION)
|
||||||
|
WCHAR FileName[512];
|
||||||
|
#else
|
||||||
char FileName[512];
|
char FileName[512];
|
||||||
|
#endif
|
||||||
} FILE_DIRECTORY_INFORMATION;
|
} FILE_DIRECTORY_INFORMATION;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user