The FSCTL_ENUM_OVERLAY control code enumerates all the data sources from a backing provider for a specified volume.

To perform this operation, call FltFsControlFile or ZwFsControlFile with the following parameters.


  • Instance [in]: FltFsControlFile only. Opaque instance pointer for the caller. This parameter is required and cannot be NULL.

  • FileObject [in]: FltFsControlFile only. The file pointer object specifying the volume to be dismounted. This parameter is required and cannot be NULL.

  • FileHandle [in]: ZwFsControlFile only. The file handle of the volume to be dismounted. This parameter is required and cannot be NULL.

  • FsControlCode [in]: Control code for the operation. Use FSCTL_REMOVE_OVERLAY for this operation.

  • InputBuffer [in]: A pointer to the input buffer, which must contain a WOF_EXTERNAL_INFO structure.

  • InputBufferLength [in]: Set to sizeof(WOF_EXTERNAL_INFO).

  • OutputBuffer [out]: Pointer to an output buffer which will receive one or more WIM_PROVIDER_OVERLAY_ENTRY structures for data sources backing the volume.

  • OutputBufferLength [out]: Size of the buffer pointed to by OutputBuffer, in bytes.

  • LengthReturned [out]: Specifies the number of bytes written into OutputBuffer on successful completion.

Status block

FltFsControlFile or ZwFsControlFile returns STATUS_SUCCESS if the operation succeeds. Otherwise, the appropriate function might return one of the following NTSTATUS values.

Code Meaning
STATUS_ACCESS_DENIED The requestor does not have administrative privileges.
STATUS_BUFFER_TOO_SMALL The length of the output buffer pointed to by OutputBuffer and specified by OutputBufferLength is too small.
STATUS_INTERNAL_ERROR The requested volume is not accessible.
STATUS_INVALID_DEVICE_REQUEST The backing service is not present or not started.


When enumerating the data sources for the WIM provider, the output buffer will contain an array of WIM_PROVIDER_OVERLAY_ENTRY structures. The size of the output buffer must be large enough to contain all the overlay entries or the call will return STATUS_BUFFER_TOO_SMALL.

Additional backing providers will define their own specific enumeration structures.


Requirement type Requirement
Minimum supported client Windows 8.1 Update
Header Ntifs.h (include Ntifs.h or Fltkernel.h)

See also