CfOpenFileWithOplock function (cfapi.h)

Opens an asynchronous opaque handle to a file or directory (for both normal and placeholder files) and sets up a proper oplock on it based on the open flags.


HRESULT CfOpenFileWithOplock(
  [in]  LPCWSTR            FilePath,
  [in]  CF_OPEN_FILE_FLAGS Flags,
  [out] PHANDLE            ProtectedHandle


[in] FilePath

Fully qualified path to the file or directory to be opened.

[in] Flags

Flags to specify permissions on opening the file.

[out] ProtectedHandle

An opaque handle to the file or directory that is just opened. Note that this is not a normal Win32 handle and hence cannot be used with non-CfApi Win32 APIs directly.

Return value

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


When the oplock is broken, the API will handle the break notification automatically on behalf of the caller by draining all active requests and then closing the underneath Win32 handle.

This aims to removing the complexity related to oplock usages. The caller must close the handle returned by CfOpenFileWithOplock with CfCloseHandle.


Minimum supported client Windows 10, version 1709 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Target Platform Windows
Header cfapi.h
Library CldApi.lib
DLL CldApi.dll