CfDehydratePlaceholder function

Dehydrates a placeholder file by ensuring that the specified byte range is not present on-disk in the placeholder. This is valid for files only.


void STDAPI CfDehydratePlaceholder(
  _In_        HANDLE           FileHandle,
  _In_        LARGE_INTEGER    StartingOffset,
  _In_        LARGE_INTEGER    Length,
  _In_        CF_HYDRATE_FLAGS DehydrateFlags,
  _Inout_opt_ LPOVERLAPPED     Overlapped


  • FileHandle [in]
    A handle to the placeholder file.

  • StartingOffset [in]
    The starting point offset of the placeholder file data.

  • Length [in]
    The length, in bytes, of the placeholder file whose data must be invalidated locally on the disk after the API completes successfully. A length of -1 signifies end of file.

  • DehydrateFlags [in]
    Placeholder dehydration flags.

  • Overlapped [in, out, optional]
    When specified and combined with an asynchronous FileHandle, Overlapped allows the platform to perform the CfDehydratePlaceholder call asynchronously. See the Remarks for more details.

    If not specified, the platform will perform the API call synchronously, regardless of how the handle was created.

Return value

This function does not return a value.


The caller must acquire an exclusive handle to the file or data corruption can occur. To minimize the impact on user applications it is highly recommended that the caller obtain the exclusiveness using proper oplocks (via CfOpenFileWithOplock) as opposed to using a share-nothing handle.

If the API returns HRESULT_FROM_WIN32(ERROR_IO_PENDING) when using Overlapped asynchronously, the caller can then wait using GetOverlappedResult.


Minimum supported client

Windows 10, version 1709 [desktop apps only]

Minimum supported server

Windows Server 2016 [desktop apps only]