00001
00002
00003
00004
00005
00006
00007
00008 #include "ad_ntfs.h"
00009
00010 void ADIOI_NTFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
00011 {
00012 LONG dwTemp;
00013 DWORD err;
00014 BOOL result;
00015 static char myname[] = "ADIOI_NTFS_Resize";
00016
00017 dwTemp = DWORDHIGH(size);
00018 err = SetFilePointer(fd->fd_sys, DWORDLOW(size), &dwTemp, FILE_BEGIN);
00019
00020 if (err == INVALID_SET_FILE_POINTER)
00021 {
00022 err = GetLastError();
00023 if (err != NO_ERROR)
00024 {
00025 char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
00026 ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
00027 *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
00028 myname, __LINE__, MPI_ERR_IO,
00029 "**io",
00030 "**io %s", errMsg);
00031 return;
00032 }
00033 }
00034
00035
00036 result = SetEndOfFile(fd->fd_sys);
00037
00038 if (result == FALSE)
00039 {
00040 char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
00041 err = GetLastError();
00042 ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
00043 *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
00044 myname, __LINE__, MPI_ERR_IO,
00045 "**io",
00046 "**io %s", errMsg);
00047 return;
00048 }
00049
00050 *error_code = MPI_SUCCESS;
00051 }