PRJ_CALLBACK_DATA structure (projectedfslib.h)

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

Syntax

typedef struct PRJ_CALLBACK_DATA {
  UINT32                               Size;
  PRJ_CALLBACK_DATA_FLAGS              Flags;
  PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT NamespaceVirtualizationContext;
  INT32                                CommandId;
  GUID                                 FileId;
  GUID                                 DataStreamId;
  PCWSTR                               FilePathName;
  PRJ_PLACEHOLDER_VERSION_INFO         *VersionInfo;
  UINT32                               TriggeringProcessId;
  PCWSTR                               TriggeringProcessImageFileName;
  void                                 *InstanceContext;
} PRJ_CALLBACK_DATA;

Members

Size

Size in bytes of this structure. The provider must not attempt to access any field of this structure that is located beyond this value.

Flags

Callback-specific flags.

NamespaceVirtualizationContext

Opaque handle to the virtualization instance that is sending the callback.

CommandId

A value that uniquely identifies a particular invocation of a callback. The provider uses this value:

  • In calls to PrjCompleteCommand to signal completion of a callback from which it earlier returned HRESULT_FROM_WIN32(ERROR_IO_PENDING).
  • When ProjFS sends a PRJ_CANCEL_COMMAND_CB callback. The commandId in the PRJ_CANCEL_COMMAND_CB call identifies an earlier invocation of a callback that the provider should cancel.

FileId

A value that uniquely identifies the file handle for the callback.

DataStreamId

A value that uniquely identifies an open data stream for the callback.

FilePathName

The path to the target file. This is a null-terminated string of Unicode characters. This path is always specified relative to the virtualization root.

VersionInfo

Version information if the target of the callback is a placeholder or partial file.

TriggeringProcessId

The process identifier for the process that triggered this callback. If this information is not available, this will be 0. Callbacks that supply this information include: PRJ_GET_PLACEHOLDER_INFO_CB, PRJ_GET_FILE_DATA_CB, and PRJ_NOTIFICATION_CB.

TriggeringProcessImageFileName

A null-terminated Unicode string specifying the image file name corresponding to TriggeringProcessId. If TriggeringProcessId is 0 this will be NULL.

InstanceContext

A pointer to context information defined by the provider. The provider passes this context in the instanceContext parameter of PrjStartVirtualizing.

If the provider did not specify such a context, this value will be NULL.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1809 [desktop apps only]
Minimum supported server Windows Server [desktop apps only]
Header projectedfslib.h