RtlSetThreadPlaceholderCompatibilityMode function (ntifs.h)

RtlSetThreadPlaceholderCompatibilityMode sets the placeholder compatibility mode for the current thread. This allows a thread to explicitly request that placeholder files be either disguised or exposed, overriding the application’s default mode for that thread only.

Syntax

NTSYSAPI CHAR RtlSetThreadPlaceholderCompatibilityMode(
  [in] CHAR Mode
);

Parameters

[in] Mode

Specifies the placeholder compatibility mode to set.

Return value

Returns the thread's previous placeholder compatibility mode. If there was an error it returns a negative value. It can be one of the following values:

Compatibility Mode Value
PHCM_APPLICATION_DEFAULT 0
PHCM_DISGUISE_PLACEHOLDER 1
PHCM_EXPOSE_PLACEHOLDERS 2
PHCM_MAX 2
PHCM_ERROR_INVALID_PARAMETER -1
PHCM_ERROR_NO_TEB -2

Remarks

When placeholders are exposed, characteristics such as the presence of a reparse point, the sparse bit, and the offline bit are plainly visible through directory enumeration and other types of file information queries. When placeholders are disguised, these details are completely hidden, making the file look like a normal file.

Most Windows applications see exposed placeholders by default. For compatibility reasons, Windows may decide that certain applications see disguised placeholders by default.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1709.
Target Platform Windows
Header ntifs.h (include Ntifs.h)

See also

RtlQueryProcessPlaceholderCompatibilityMode

RtlQueryThreadPlaceholderCompatibilityMode

RtlSetProcessPlaceholderCompatibilityMode