PRJ_NOTIFICATION_CB funzione di callback (projectedfslib.h)

Recapita notifiche al provider sulle operazioni del file system.

Sintassi

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

Parametri

[in] callbackData

Informazioni sull'operazione. Per implementare questo callback sono necessari i membri callback seguenti:

FilePathName Identifica il percorso del file o della directory a cui è relativa la notifica.

Il provider può accedere a questo buffer solo durante l'esecuzione del callback. Se desidera eseguire la penna dell'operazione e richiede dati da questo buffer, deve crearne una copia.

[in] isDirectory

TRUE se il campo FilePathName in callbackData fa riferimento a una directory, FALSE in caso contrario.

[in] notification

Valore PRJ_NOTIFICATION che specifica la notifica.

[in, optional] destinationFileName

Se la notifica è PRJ_NOTIFICATION_PRE_RENAME o PRJ_NOTIFICATION_PRE_SET_HARDLINK, punta a una stringa Unicode con terminazione Null che specifica il percorso, relativo alla radice di virtualizzazione, della destinazione dell'operazione di ridenominazione o set-hardlink.

[in, out] operationParameters

Puntatore a un'unione PRJ_NOTIFICATION_PARAMETERS che specifica parametri aggiuntivi per determinati valori di notifica:

PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED o PRJ_NOTIFICATION_FILE_OVERWRITTEN

Vengono specificati i campi del membro PostCreate . Questi campi sono:

NotificaMask

Al ritorno dal callback PRJ_NOTIFICATION_CB, il provider può specificare un nuovo set di notifiche che desidera ricevere per il file qui.

Se il provider imposta questo valore su 0, equivale a specificare PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_RENAMED

Vengono specificati i campi del membro FileRenamed . Questi campi sono:

NotificaMask

Al ritorno dal callback PRJ_NOTIFICATION_CB, il provider può specificare un nuovo set di notifiche che desidera ricevere per il file qui.

Se il provider imposta questo valore su 0, equivale a specificare PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED

  • Vengono specificati i campi del membro FileDeletedOnHandleClose . Questi campi sono:

    NotificaMask

    Se il provider è stato registrato per PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED e PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED, questo campo viene impostato su TRUE se il file è stato modificato prima dell'eliminazione.

Valore restituito

Codice restituito Descrizione
S_OK
Il provider ha elaborato correttamente la notifica.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
Il provider desidera completare l'operazione in un secondo momento.
 

Codice di errore HRESULT appropriato se il provider non riesce l'operazione. Per le notifiche di pre-operazione (operazioni con "PRE" nel nome), se il provider restituisce un codice di errore ProjFS avrà esito negativo l'operazione corrispondente con il codice di errore specificato.

Commenti

Questo callback è facoltativo. Se il provider non fornisce un'implementazione di questo callback, non riceverà notifiche.

Il provider esegue la registrazione per le notifiche che desidera ricevere quando chiama PrjStartVirtualizing.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1809 [solo app desktop]
Server minimo supportato Windows Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione projectedfslib.h