FsRtlRemoveDotsFromPath function (ntifs.h)

The FsRtlRemoveDotsFromPath routine removes unnecessary occurrences of '.' and '..' from the specified path.

Syntax

NTSTATUS FsRtlRemoveDotsFromPath(
  [in, out] PWSTR  OriginalString,
  [in]      USHORT PathLength,
  [out]     USHORT *NewLength
);

Parameters

[in, out] OriginalString

A pointer to the buffer to be processed.

[in] PathLength

The length of buffer (in bytes).

[out] NewLength

A pointer to the new length of the buffer, after processing.

Return value

The FsRtlRemoveDotsFromPath routine returns either STATUS_SUCCESS value for success or STATUS_IO_REPARSE_DATA_INVALID if the operation could not be completed.

Remarks

This routine would take a path as OriginalString like the following example:

\dir1\dir2\..\dir3\.\file.txt

The routine would modify OriginalString as follows:

\dir1\dir3\file.txt

The routine will fail with STATUS_IO_REPARSE_DATA_INVALID if any of the following strings are passed as OriginalString:

\..
..
..\anyOtherContent

Requirements

Requirement Value
Minimum supported client Windows Vista
Target Platform Universal
Header ntifs.h (include FltKernel.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI compliance rules HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)