MmCanFileBeTruncated function (ntifs.h)

The MmCanFileBeTruncated routine checks whether a file can be truncated.

Syntax

BOOLEAN MmCanFileBeTruncated(
  [in]           PSECTION_OBJECT_POINTERS SectionPointer,
  [in, optional] PLARGE_INTEGER           NewFileSize
);

Parameters

[in] SectionPointer

Pointer to a structure that contains the file object's section object pointers.

[in, optional] NewFileSize

Pointer to a variable that specifies the size in bytes to which the file is to be truncated. If this parameter is NULL, then a length of zero is assumed and MmCanFileBeTruncated checks whether the entire file can be truncated.

Return value

MmCanFileBeTruncated returns TRUE if the file can be truncated; FALSE otherwise.

Remarks

MmCanFileBeTruncated must always be called before a file is truncated.

A file cannot be truncated (and MmCanFileBeTruncated will return FALSE) if any of the following are true:

  • An image section exists for the file.

  • There are one or more outstanding write probes on the file's data section.

  • There is a mapped view of file's data section within the truncation range determined by NewFileSize.

  • One or more users hold references to the data section for the file, and NewFileSize <= the current file size.

Requirements

Requirement Value
Target Platform Universal
Header ntifs.h (include Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

See also

CcCoherencyFlushAndPurge

CcPurgeCacheSection

CcSetFileSizesEx

MmFlushImageSection