Jump to content

DosNewSize: Difference between revisions

From EDM2
Ak120 (talk | contribs)
m Ak120 moved page DosNewSize (Legacy) to DosNewSize
(No difference)

Revision as of 16:10, 18 February 2017

This function has been renamed to "DosSetFileSize". [1]


Description

This call changes the size of a file.

Syntax

 DosNewSize

    (FileHandle, FileSize)

Parameters

FileHandle (HFILE) - input
Handle of the file whose size is being changed.
FileSize (ULONG) - input
File's new size in bytes.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 5 ERROR_ACCESS_DENIED
  • 6 ERROR_INVALID_HANDLE
  • 26 ERROR_NOT_DOS_DISK
  • 33 ERROR_LOCK_VIOLATION
  • 87 ERROR_INVALID_PARAMETER
  • 112 ERROR_DISK_FULL

Remarks

When DosNewSize is called, the file must be open in a mode that allows write access. If the file is a read-only file, its read-only status must be changed with DosSetFileMode before you can open the file for write access.

The open file can be truncated or extended in size. If the file is being extended, the file system makes a reasonable attempt to allocate the additional bytes for the file in a contiguous (or nearly contiguous) space on the medium. The value of the new bytes is undefined.

Example Code

C Binding

#define INCL_DOSFILEMGR

USHORT  rc = DosNewSize(FileHandle, FileSize);

HFILE            FileHandle;    /* File handle */
ULONG            FileSize;      /* File's new size */

USHORT           rc;            /* return code */

MASM Binding

EXTRN  DosNewSize:FAR
INCL_DOSFILEMGR     EQU 1

PUSH   WORD    FileHandle    ;File handle
PUSH   DWORD   FileSize      ;File's new size
CALL   DosNewSize

Returns WORD

Related Functions