enumerazione PRJ_NOTIFICATION (projectedfslib.h)

Valore di notifica specificato durante l'invio del callback PRJ_NOTIFICATION_CB.

Sintassi

typedef enum PRJ_NOTIFICATION {
  PRJ_NOTIFICATION_FILE_OPENED = 0x00000002,
  PRJ_NOTIFICATION_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFICATION_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFICATION_PRE_DELETE = 0x00000010,
  PRJ_NOTIFICATION_PRE_RENAME = 0x00000020,
  PRJ_NOTIFICATION_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFICATION_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFICATION_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL = 0x00001000
} ;

Costanti

 
PRJ_NOTIFICATION_FILE_OPENED
Valore: 0x00000002
- Indica che un handle è stato creato in un file o una cartella esistente.
- Il provider può specificare una nuova maschera di notifica per il file o la cartella quando risponde alla notifica.
PRJ_NOTIFICATION_NEW_FILE_CREATED
Valore: 0x00000004
- È stato creato un nuovo file o una nuova cartella.
- Il provider può specificare una nuova maschera di notifica per il file o la cartella quando risponde alla notifica.
PRJ_NOTIFICATION_FILE_OVERWRITTEN
Valore: 0x00000008
- Un file esistente è stato sovrascritto o sostituito.
- Il provider può specificare una nuova maschera di notifica per il file o la cartella quando risponde alla notifica.
PRJ_NOTIFICATION_PRE_DELETE
Valore: 0x00000010
- Un file o una cartella sta per essere eliminato.
- Se il provider restituisce un codice HRESULT di errore dal callback, l'eliminazione non avrà effetto.
PRJ_NOTIFICATION_PRE_RENAME
Valore: 0x00000020
- Un file o una cartella sta per essere rinominato.
- Se il provider restituisce un codice HRESULT di errore dal callback, la ridenominazione non avrà effetto.
- Se il parametro callbackData-FilePathName> di PRJ_NOTIFICATION_CB è una stringa vuota, indica che la ridenominazione sta spostando il file o la directory dall'esterno dell'istanza di virtualizzazione. In tal caso, questa notifica verrà sempre inviata se il provider ha registrato un callback PRJ_NOTIFICATION_CB , anche se il provider non ha specificato questo bit durante la registrazione del sottoalbero contenente il percorso di destinazione. Tuttavia, se il provider specificato PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS durante la registrazione del sottoalbero contenente il percorso di destinazione, la notifica verrà eliminata.
- Se il parametro destinationFileName di PRJ_NOTIFICATION_CB è una stringa vuota, indica che la ridenominazione sposta il file/cartella dall'istanza di virtualizzazione.
- Se entrambi i parametri callbackData-FilePathName> e destinationFileName di PRJ_NOTIFICATION_CB sono stringhe non vuote, questo indica che la ridenominazione è all'interno dell'istanza di virtualizzazione. Se il provider ha specificato maschere di notifica diverse per i percorsi di origine e di destinazione nel membro NotificationMappings del parametro options di PrjStartVirtualizing, questa notifica verrà inviata se il provider ha specificato questo bit durante la registrazione dei percorsi di origine o di destinazione.
PRJ_NOTIFICATION_PRE_SET_HARDLINK
Valore: 0x00000040
- Un collegamento rigido sta per essere creato per il file.
- Se il provider restituisce un codice HRESULT di errore dal callback, l'operazione di collegamento rigido non avrà effetto.
- Se il parametro callbackData-FilePathName> di PRJ_NOTIFICATION_CB è una stringa vuota, questo indica che il nome del collegamento rigido verrà creato all'interno dell'istanza di virtualizzazione, ovvero viene creato un nuovo collegamento rigido all'interno dell'istanza di virtualizzazione in un file esistente all'esterno dell'istanza di virtualizzazione. In tal caso, questa notifica verrà sempre inviata se il provider ha registrato un callback PRJ_NOTIFICATION_CB , anche se il provider non ha specificato questo bit durante la registrazione del sottoalbero in cui sarà presente il nuovo nome di collegamento rigido. Tuttavia, se il provider specificato PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS durante la registrazione del sottoalbero contenente il percorso di destinazione, la notifica verrà eliminata.
- Se il parametro destinationFileName di PRJ_NOTIFICATION_CB è una stringa vuota, questo indica che il nome del collegamento rigido verrà creato all'esterno dell'istanza di virtualizzazione, ad esempio viene creato un nuovo collegamento rigido all'esterno dell'istanza di virtualizzazione per un file esistente all'interno dell'istanza di virtualizzazione.
- Se i parametri callbackData-FilePathName> e destinationFileName di PRJ_NOTIFICATION_CB sono stringhe non vuote, questo indica che il nuovo collegamento rigido verrà creato all'interno dell'istanza di virtualizzazione per un file esistente nell'istanza di virtualizzazione. Se il provider ha specificato maschere di notifica diverse per i percorsi di origine e di destinazione nel membro NotificationMappings del parametro options di PrjStartVirtualizing, questa notifica verrà inviata se il provider ha specificato questo bit durante la registrazione dei percorsi di origine o di destinazione.
PRJ_NOTIFICATION_FILE_RENAMED
Valore: 0x00000080
- Indica che un file o una cartella è stato rinominato. Il file o la cartella potrebbero essere stati spostati nell'istanza di virtualizzazione.
- Se il parametro callbackData-FilePathName> di PRJ_NOTIFICATION_CB è una stringa vuota, indica che la ridenominazione ha spostato il file o la directory dall'esterno dell'istanza di virtualizzazione. In tal caso ProjFS invierà sempre questa notifica se il provider ha registrato un callback PRJ_NOTIFICATION_CB, anche se il provider non ha specificato questo bit durante la registrazione del sottoalbero contenente il percorso di destinazione.
- Se il parametro destinationFileName di PRJ_NOTIFICATION_CB è una stringa vuota, indica che la ridenominazione ha spostato il file o la directory dall'istanza di virtualizzazione.
- Se entrambi i parametri callbackData-FilePathName> e destinationFileName di PRJ_NOTIFICATION_CB sono stringhe non vuote, questo indica che la ridenominazione era all'interno dell'istanza di virtualizzazione. Se il provider ha specificato maschere di notifica diverse per i percorsi di origine e di destinazione nel membro NotificationMappings del parametro options di PrjStartVirtualizing, ProjFS invierà questa notifica se il provider ha specificato questo bit durante la registrazione dei percorsi di origine o di destinazione.
- Il provider può specificare una nuova maschera di notifica per questo file/directory quando risponde alla notifica.
PRJ_NOTIFICATION_HARDLINK_CREATED
Valore: 0x00000100
- Indica che è stato creato un collegamento rigido per il file.
- Se il parametro callbackData-FilePathName> di PRJ_NOTIFICATION_CB è una stringa vuota, indica che il nome del collegamento rigido è stato creato all'interno dell'istanza di virtualizzazione, ovvero è stato creato un nuovo collegamento rigido all'interno dell'istanza di virtualizzazione in un file esistente all'esterno dell'istanza di virtualizzazione. In tal caso ProjFS invierà sempre questa notifica se il provider ha registrato un callback PRJ_NOTIFICATION_CB, anche se il provider non ha specificato questo bit durante la registrazione del sottoalbero in cui sarà presente il nuovo nome di collegamento rigido.
- Se il parametro destinationFileName di PRJ_NOTIFICATION_CB è una stringa vuota, questo indica che il nome del collegamento rigido è stato creato all'esterno dell'istanza di virtualizzazione, ad esempio un nuovo collegamento rigido è stato creato all'esterno dell'istanza di virtualizzazione per un file esistente all'interno dell'istanza di virtualizzazione.
- Se entrambi i parametri callbackData-FilePathName> e destinationFileName di PRJ_NOTIFICATION_CB sono stringhe non vuote, questo indica che all'interno dell'istanza di virtualizzazione è stato creato un nuovo collegamento rigido per un file presente nell'istanza di virtualizzazione. Se il provider ha specificato maschere di notifica diverse per i percorsi di origine e di destinazione nel membro NotificationMappings del parametro options di PrjStartVirtualizing, ProjFS invierà questa notifica se il provider ha specificato questo bit durante la registrazione dei percorsi di origine o di destinazione.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valore: 0x00000200
- Un handle è stato chiuso nel file o nella cartella e il contenuto del file non è stato modificato mentre l'handle è stato aperto e il file/cartella non è stato eliminato
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valore: 0x00000400
- Un handle è stato chiuso nel file e che il contenuto del file è stato modificato durante l'apertura dell'handle.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
Valore: 0x00000800
- Un handle è stato chiuso nel file o nella cartella e che è stato eliminato come parte della chiusura dell'handle.
- Se il provider è stato registrato anche per ricevere notifiche di PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED e il file è stato modificato usando l'handle la cui chiusura ha causato l'eliminazione del file, il parametro operationParameters-FileDeletedOnHandleClose.IsFileModified> di PRJ_NOTIFICATION_CB sarà TRUE. Questo vale solo per i file, non per le directory
PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL
Valore: 0x00001000
- Il file sta per essere espanso da un segnaposto a un file completo, ovvero è probabile che il relativo contenuto venga modificato.
- Se il provider restituisce un codice HRESULT di errore dal callback, il file non verrà espanso in un file completo e l'I/O che ha attivato la conversione avrà esito negativo.
- Se sono presenti più operazioni di I/O da corsa che espanderebbero lo stesso file, il provider riceverà questo valore di notifica una sola volta per il file.

Requisiti

   
Client minimo supportato Windows 10, versione 1809 [solo app desktop]
Server minimo supportato Windows Server [solo app desktop]
Intestazione projectedfslib.h