共用方式為


PRJ_NOTIFICATION_CB回呼函式 (projectedfslib.h)

將有關文件系統作業的通知傳遞給提供者。

語法

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
)
{...}

參數

[in] callbackData

作業的相關信息。 實作此回呼需要下列 callbackData 成員:

FilePathName 識別通知所屬檔案或目錄的路徑。

提供者只能在回呼執行時存取此緩衝區。 如果它想要寫入作業,而且需要來自這個緩衝區的數據,它就必須製作自己的複本。

[in] isDirectory

如果 callbackData 中的 FilePathName 欄位參考目錄,則為 TRUE,否則為 FALSE。

[in] notification

指定通知 的PRJ_NOTIFICATION 值。

[in, optional] destinationFileName

如果通知PRJ_NOTIFICATION_PRE_RENAMEPRJ_NOTIFICATION_PRE_SET_HARDLINK,這會指向以 Null 結尾的 Unicode 字串,指定重新命名或 set-hardlink 作業目標相對於虛擬化根目錄的路徑。

[in, out] operationParameters

指定特定通知值額外參數之聯集PRJ_NOTIFICATION_PARAMETERS指標:

PRJ_NOTIFICATION_FILE_OPENEDPRJ_NOTIFICATION_NEW_FILE_CREATEDPRJ_NOTIFICATION_FILE_OVERWRITTEN

會指定 PostCreate 成員的欄位。 這些欄位是:

NotificationMask

從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。

如果提供者將此值設定為 0,則相當於指定 PRJ_NOTIFY_USE_EXISTING_MASK

PRJ_NOTIFICATION_FILE_RENAMED

指定 FileRenamed 成員的欄位。 這些欄位是:

NotificationMask

從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。

如果提供者將此值設定為 0,則相當於指定 PRJ_NOTIFY_USE_EXISTING_MASK

PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED

  • 指定 FileDeletedOnHandleClose 成員的欄位。 這些欄位是:

    NotificationMask

    如果提供者註冊 PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED 以及 PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED,則如果檔案在刪除前修改檔案,此欄位會設定為 TRUE。

傳回值

傳回碼 描述
S_OK
提供者已成功處理通知。
HRESULT_FROM_WIN32 (ERROR_IO_PENDING)
提供者希望稍後完成作業。
 

如果提供者失敗,則為適當的 HRESULT 錯誤碼。 對於在作業前通知 (名稱中具有 「PRE」 的作業) ,如果提供者傳回失敗碼 ProjFS 將會失敗,且提供的錯誤碼為對應作業。

備註

此回呼是選擇性的。 如果提供者未提供此回呼的實作,則不會收到通知。

提供者會在呼叫 PrjStartVirtualizing 時註冊其想要接收的通知。

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server [僅限傳統型應用程式]
目標平台 Windows
標頭 projectedfslib.h