Projected File System

Overview of the Projected File System technology.

To develop Projected File System, you need these headers:

For programming guidance for this technology, see:

Enumerations

 
PRJ_CALLBACK_DATA_FLAGS

Flags controlling what is returned in the enumeration.
PRJ_COMPLETE_COMMAND_TYPE

Specifies command types.
PRJ_EXT_INFO_TYPE

Specifies extended information types
PRJ_FILE_STATE

The state of an item.
PRJ_NOTIFICATION

A notification value specified when sending the notification in a callback.
PRJ_NOTIFY_TYPES

Types of notifications describing a change to the file or folder.
PRJ_PLACEHOLDER_ID

Defines the length of a placeholder identifier.
PRJ_STARTVIRTUALIZING_FLAGS

Flags to provide when starting a virtualization instance.
PRJ_UPDATE_FAILURE_CAUSES

Descriptions for the reason an update failed.
PRJ_UPDATE_TYPES

Flags to specify whether updates will be allowed given the state of a file or directory on disk.

Functions

 
PRJ_CANCEL_COMMAND_CB

Notifies the provider that an operation by an earlier invocation of a callback should be canceled.
PRJ_END_DIRECTORY_ENUMERATION_CB

Informs the provider that a directory enumeration is over.
PRJ_GET_DIRECTORY_ENUMERATION_CB

Requests directory enumeration information from the provider.
PRJ_GET_FILE_DATA_CB

Requests the contents of a file's primary data stream.
PRJ_GET_PLACEHOLDER_INFO_CB

Requests information for a file or directory from the provider.
PRJ_NOTIFICATION_CB

Delivers notifications to the provider about file system operations.
PRJ_QUERY_FILE_NAME_CB

Determines whether a given file path exists in the provider's backing store.
PRJ_START_DIRECTORY_ENUMERATION_CB

Informs the provider that a directory enumeration is starting.
PrjAllocateAlignedBuffer

Allocates a buffer that meets the memory alignment requirements of the virtualization instance's storage device.
PrjClearNegativePathCache

Purges the virtualization instance's negative path cache, if it is active.
PrjCompleteCommand

Indicates that the provider has completed processing a callback from which it had previously returned HRESULT_FROM_WIN32(ERROR_IO_PENDING).
PrjDeleteFile

Enables a provider to delete an item that has been cached on the local file system.
PrjDoesNameContainWildCards

Determines whether a name contains wildcard characters.
PrjFileNameCompare

Compares two file names and returns a value that indicates their relative collation order.
PrjFileNameMatch

Determines whether a file name matches a search pattern.
PrjFillDirEntryBuffer

Provides information for one file or directory to an enumeration.
PrjFillDirEntryBuffer2

Provides information for one file or directory to an enumeration and allows the caller to specify extended information.
PrjFreeAlignedBuffer

Frees an allocated buffer.
PrjGetOnDiskFileState

Gets the on-disk file state for a file or directory.
PrjGetVirtualizationInstanceInfo

Retrieves information about the virtualization instance.
PrjMarkDirectoryAsPlaceholder

Converts an existing directory to a directory placeholder.
PrjStartVirtualizing

Configures a ProjFS virtualization instance and starts it, making it available to service I/O and invoke callbacks on the provider.
PrjStopVirtualizing

Stops a running ProjFS virtualization instance, making it unavailable to service I/O or involve callbacks on the provider.
PrjUpdateFileIfNeeded

Enables a provider to update an item that has been cached on the local file system.
PrjWriteFileData

The PrjWriteFileData function provides the data requested in an invocation of the PRJ_GET_FILE_DATA_CB callback. (PrjWriteFileData)
PrjWritePlaceholderInfo

Sends file or directory metadata to ProjFS.
PrjWritePlaceholderInfo2

Sends file or directory metadata to ProjFS and allows the caller to specify extended information.

Structures

 
PRJ_CALLBACK_DATA

Defines the standard information passed to a provider for every operation callback.
PRJ_CALLBACKS

A set of callback routines to where the provider stores its implementation of the callback.
PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS

Specifies parameters required for completing certain callbacks.
PRJ_EXTENDED_INFO

Specifies optional extended information for directory enumeration and placeholder information.
PRJ_FILE_BASIC_INFO

Basic information about an item.
PRJ_NOTIFICATION_MAPPING

Describes a notification mapping, which is a pairing between a directory (referred to as a "notification root") and a set of notifications, expressed as a bit mask.
PRJ_NOTIFICATION_PARAMETERS

Extra parameters for notifications.
PRJ_PLACEHOLDER_INFO

A buffer of metadata for the placeholder file or directory.
PRJ_PLACEHOLDER_VERSION_INFO

Information that uniquely identifies the contents of a placeholder file.
PRJ_STARTVIRTUALIZING_OPTIONS

Options to provide when starting a virtualization instance.
PRJ_VIRTUALIZATION_INSTANCE_INFO

Information about a virtualization instance.