26#ifndef FREERDP_CHANNEL_DRIVE_CLIENT_FILE_H
27#define FREERDP_CHANNEL_DRIVE_CLIENT_FILE_H
29#include <winpr/stream.h>
30#include <winpr/file.h>
32#include <freerdp/api.h>
33#include <freerdp/channels/log.h>
35#define TAG CHANNELS_TAG("drive.client")
44 const WCHAR* basepath;
47 UINT32 FileAttributes;
50 UINT32 CreateDisposition;
54FREERDP_LOCAL BOOL drive_file_free(
DRIVE_FILE* file);
56WINPR_ATTR_MALLOC(drive_file_free, 1)
57FREERDP_LOCAL
DRIVE_FILE* drive_file_new(const WCHAR* base_path, const WCHAR* path,
58 UINT32 PathWCharLength, UINT32
id, UINT32 DesiredAccess,
59 UINT32 CreateDisposition, UINT32 CreateOptions,
60 UINT32 FileAttributes, UINT32 SharedAccess);
63FREERDP_LOCAL BOOL drive_file_open(
DRIVE_FILE* file);
66FREERDP_LOCAL BOOL drive_file_seek(
DRIVE_FILE* file, UINT64 Offset);
69FREERDP_LOCAL BOOL drive_file_read(
DRIVE_FILE* file, BYTE* buffer, UINT32* Length);
72FREERDP_LOCAL BOOL drive_file_write(
DRIVE_FILE* file, const BYTE* buffer, UINT32 Length);
75FREERDP_LOCAL BOOL drive_file_query_information(
DRIVE_FILE* file, UINT32 FsInformationClass,
79FREERDP_LOCAL BOOL drive_file_set_information(
DRIVE_FILE* file, UINT32 FsInformationClass,
83FREERDP_LOCAL BOOL drive_file_query_directory(
DRIVE_FILE* file, UINT32 FsInformationClass,
84 BYTE InitialQuery, const WCHAR* path,
85 UINT32 PathWCharLength,
wStream* output);