X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fio.h;h=5321bcd7c4459da7642a1dd34fbe00d936c6e6c6;hb=86e44dfdcbc36134f56616dfe0ee1c6ae81e02b7;hp=abab516c89f2b2f27992f5e8a9345589ef472ee9;hpb=a097b5471761180c4aae2dab224ed9caeeae3e86;p=mono.git diff --git a/mono/io-layer/io.h b/mono/io-layer/io.h index abab516c89f..5321bcd7c44 100644 --- a/mono/io-layer/io.h +++ b/mono/io-layer/io.h @@ -82,6 +82,9 @@ typedef void (*WapiOverlappedCB) (guint32 error, guint32 numbytes, #define FILE_FLAG_OVERLAPPED 0x40000000 #define FILE_FLAG_WRITE_THROUGH 0x80000000 +#define REPLACEFILE_WRITE_THROUGH 0x00000001 +#define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002 + #define MAX_PATH 260 typedef enum { @@ -104,6 +107,16 @@ typedef enum { FILE_TYPE_REMOTE=0x8000 } WapiFileType; +typedef enum { + DRIVE_UNKNOWN=0, + DRIVE_NO_ROOT_DIR=1, + DRIVE_REMOVABLE=2, + DRIVE_FIXED=3, + DRIVE_REMOTE=4, + DRIVE_CDROM=5, + DRIVE_RAMDISK=6 +} WapiDriveType; + typedef enum { GetFileExInfoStandard=0x0000, GetFileExMaxInfoLevel=0x0001 @@ -164,7 +177,7 @@ extern gboolean WriteFile(gpointer handle, gconstpointer buffer, extern gboolean FlushFileBuffers(gpointer handle); extern gboolean SetEndOfFile(gpointer handle); extern guint32 SetFilePointer(gpointer handle, gint32 movedistance, - gint32 *highmovedistance, WapiSeekMethod method); + gint32 *highmovedistance, guint32 method); extern WapiFileType GetFileType(gpointer handle); extern guint32 GetFileSize(gpointer handle, guint32 *highsize); extern gboolean GetFileTime(gpointer handle, WapiFileTime *create_time, @@ -185,6 +198,9 @@ extern gboolean RemoveDirectory (const gunichar2 *name); extern gboolean MoveFile (const gunichar2 *name, const gunichar2 *dest_name); extern gboolean CopyFile (const gunichar2 *name, const gunichar2 *dest_name, gboolean fail_if_exists); +extern gboolean ReplaceFile (const gunichar2 *replacedFileName, const gunichar2 *replacementFileName, + const gunichar2 *backupFileName, guint32 replaceFlags, + gpointer exclude, gpointer reserved); extern guint32 GetFileAttributes (const gunichar2 *name); extern gboolean GetFileAttributesEx (const gunichar2 *name, WapiGetFileExInfoLevels level, @@ -194,14 +210,22 @@ extern guint32 GetCurrentDirectory (guint32 length, gunichar2 *buffer); extern gboolean SetCurrentDirectory (const gunichar2 *path); extern gboolean CreatePipe (gpointer *readpipe, gpointer *writepipe, WapiSecurityAttributes *security, guint32 size); -extern guint32 GetTempPath (guint32 len, gunichar2 *buf); extern gint32 GetLogicalDriveStrings (guint32 len, gunichar2 *buf); +extern gboolean GetDiskFreeSpaceEx(const gunichar2 *path_name, WapiULargeInteger *free_bytes_avail, + WapiULargeInteger *total_number_of_bytes, + WapiULargeInteger *total_number_of_free_bytes); +extern guint32 GetDriveType(const gunichar2 *root_path_name); extern gboolean LockFile (gpointer handle, guint32 offset_low, guint32 offset_high, guint32 length_low, guint32 length_high); extern gboolean UnlockFile (gpointer handle, guint32 offset_low, guint32 offset_high, guint32 length_low, guint32 length_high); +extern gboolean GetVolumeInformation (const gunichar2 *path, gunichar2 *volumename, int volumesize, int *outserial, int *maxcomp, int *fsflags, gunichar2 *fsbuffer, int fsbuffersize); + + +extern void _wapi_io_init (void); +extern void _wapi_io_cleanup (void); G_END_DECLS