Compartir a través de


PRJ_NOTIFICATION_CB función de devolución de llamada (projectedfslib.h)

Entrega notificaciones al proveedor sobre las operaciones del sistema de archivos.

Sintaxis

PRJ_NOTIFICATION_CB PrjNotificationCb;

HRESULT PrjNotificationCb(
  [in]           const PRJ_CALLBACK_DATA *callbackData,
  [in]           BOOLEAN isDirectory,
  [in]           PRJ_NOTIFICATION notification,
  [in, optional] PCWSTR destinationFileName,
  [in, out]      PRJ_NOTIFICATION_PARAMETERS *operationParameters
)
{...}

Parámetros

[in] callbackData

Información sobre la operación. Los siguientes miembros callbackData son necesarios para implementar esta devolución de llamada:

FilePathName Identifica la ruta de acceso del archivo o directorio al que pertenece la notificación.

El proveedor solo puede acceder a este búfer mientras se ejecuta la devolución de llamada. Si desea lápiz la operación y requiere datos de este búfer, debe realizar su propia copia.

[in] isDirectory

TRUE si el campo FilePathName de callbackData hace referencia a un directorio, FALSE en caso contrario.

[in] notification

Valor de PRJ_NOTIFICATION que especifica la notificación.

[in, optional] destinationFileName

Si la notificación se PRJ_NOTIFICATION_PRE_RENAME o PRJ_NOTIFICATION_PRE_SET_HARDLINK, apunta a una cadena Unicode terminada en null que especifica la ruta de acceso, relativa a la raíz de virtualización, del destino de la operación de cambio de nombre o establecimiento de vínculo duro.

[in, out] operationParameters

Puntero a una unión de PRJ_NOTIFICATION_PARAMETERS que especifica parámetros adicionales para determinados valores de notificación:

PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED o PRJ_NOTIFICATION_FILE_OVERWRITTEN

Se especifican los campos del miembro PostCreate . Estos campos son:

NotificationMask

Tras la devolución de llamada del PRJ_NOTIFICATION_CB, el proveedor puede especificar un nuevo conjunto de notificaciones que desea recibir para el archivo aquí.

Si el proveedor establece este valor en 0, equivale a especificar PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_RENAMED

Se especifican los campos del miembro FileRenamed . Estos campos son:

NotificationMask

Tras la devolución de llamada del PRJ_NOTIFICATION_CB, el proveedor puede especificar un nuevo conjunto de notificaciones que desea recibir para el archivo aquí.

Si el proveedor establece este valor en 0, equivale a especificar PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED

  • Se especifican los campos del miembro FileDeletedOnHandleClose . Estos campos son:

    NotificationMask

    Si el proveedor registrado para PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED así como PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED, este campo se establece en TRUE si el archivo se modificó antes de que se eliminara.

Valor devuelto

Código devuelto Descripción
S_OK
El proveedor procesó correctamente la notificación.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
El proveedor desea completar la operación más adelante.
 

Un código de error HRESULT adecuado si el proveedor produce un error en la operación. En el caso de las notificaciones previas a la operación (operaciones con "PRE" en su nombre), si el proveedor devuelve un código de error ProjFS producirá un error en la operación correspondiente con el código de error proporcionado.

Comentarios

Esta devolución de llamada es opcional. Si el proveedor no proporciona una implementación de esta devolución de llamada, no recibirá notificaciones.

El proveedor se registra para las notificaciones que desea recibir cuando llama a PrjStartVirtualizing.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1809 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado projectedfslib.h