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_RENAME或PRJ_NOTIFICATION_PRE_SET_HARDLINK,這會指向以 Null 結尾的 Unicode 字串,指定重新命名或 set-hardlink 作業目標相對於虛擬化根目錄的路徑。
[in, out] operationParameters
指定特定通知值額外參數之聯集PRJ_NOTIFICATION_PARAMETERS指標:
PRJ_NOTIFICATION_FILE_OPENED、 PRJ_NOTIFICATION_NEW_FILE_CREATED或 PRJ_NOTIFICATION_FILE_OVERWRITTEN
-
會指定 PostCreate 成員的欄位。 這些欄位是:
NotificationMask
-
從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。
如果提供者將此值設定為 0,則相當於指定 PRJ_NOTIFY_USE_EXISTING_MASK。
-
從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。
PRJ_NOTIFICATION_FILE_RENAMED
-
指定 FileRenamed 成員的欄位。 這些欄位是:
NotificationMask
-
從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。
如果提供者將此值設定為 0,則相當於指定 PRJ_NOTIFY_USE_EXISTING_MASK。
-
從PRJ_NOTIFICATION_CB回呼傳回時,提供者可能會指定一組新通知,希望在這裡接收該檔案。
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
-
指定 FileDeletedOnHandleClose 成員的欄位。 這些欄位是:
NotificationMask
- 如果提供者註冊 PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED 以及 PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED,則如果檔案在刪除前修改檔案,此欄位會設定為 TRUE。
傳回值
傳回碼 | 描述 |
---|---|
|
提供者已成功處理通知。 |
|
提供者希望稍後完成作業。 |
如果提供者失敗,則為適當的 HRESULT 錯誤碼。 對於在作業前通知 (名稱中具有 「PRE」 的作業) ,如果提供者傳回失敗碼 ProjFS 將會失敗,且提供的錯誤碼為對應作業。
備註
此回呼是選擇性的。 如果提供者未提供此回呼的實作,則不會收到通知。
提供者會在呼叫 PrjStartVirtualizing 時註冊其想要接收的通知。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | projectedfslib.h |