enumerazione PRJ_NOTIFY_TYPES (projectedfslib.h)

Tipi di notifiche che descrivono una modifica al file o alla cartella.

Sintassi

typedef enum PRJ_NOTIFY_TYPES {
  PRJ_NOTIFY_NONE = 0x00000000,
  PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS = 0x00000001,
  PRJ_NOTIFY_FILE_OPENED = 0x00000002,
  PRJ_NOTIFY_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFY_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFY_PRE_DELETE = 0x00000010,
  PRJ_NOTIFY_PRE_RENAME = 0x00000020,
  PRJ_NOTIFY_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFY_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFY_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL = 0x00001000,
  PRJ_NOTIFY_USE_EXISTING_MASK = 0xFFFFFFFF
} ;

Costanti

 
PRJ_NOTIFY_NONE
Valore: 0x00000000
nessuna notifica.
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS
Valore: 0x00000001
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che le notifiche non devono essere inviate per l'istanza di virtualizzazione o un sottoalbero specificato dell'istanza.

Se specificato in risposta a una notifica:

- Indica che le notifiche non devono essere inviate per il file o la cartella specificata finché non vengono chiusi tutti gli handle.

Nota Se questo bit viene visualizzato in una maschera di notifica, esegue l'override di tutti gli altri bit nella maschera. Ad esempio, una maschera valida con questo bit viene considerata come contenente solo PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS.

 
PRJ_NOTIFY_FILE_OPENED
Valore: 0x00000002
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica quando viene creato un handle in un file o una cartella esistente.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica se vengono creati altri handle nel file o nella cartella.
PRJ_NOTIFY_NEW_FILE_CREATED
Valore: 0x00000004
Se specificato nell'istanza di virtualizzazione inizia:

- Il provider deve ricevere una notifica quando viene creato un nuovo file o una nuova cartella.

Se specificato in risposta a una notifica:

- Nessun effetto.
PRJ_NOTIFY_FILE_OVERWRITTEN
Valore: 0x00000008
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica quando un file esistente viene sovrascritto o sovrascritto.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica quando il file o la cartella viene sovrascritto o sovrascritto.
PRJ_NOTIFY_PRE_DELETE
Valore: 0x00000010
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica quando un file o una cartella sta per essere eliminato.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica quando un file o una cartella sta per essere eliminato.
PRJ_NOTIFY_PRE_RENAME
Valore: 0x00000020
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica quando un file o una cartella sta per essere rinominato.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica quando un file o una cartella sta per essere rinominato.
PRJ_NOTIFY_PRE_SET_HARDLINK
Valore: 0x00000040
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica quando un collegamento rigido sta per essere creato per un file.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica quando un collegamento rigido sta per essere creato per un file.
PRJ_NOTIFY_FILE_RENAMED
Valore: 0x00000080
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica che è stato rinominato un file o una cartella.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica quando è stato rinominato un file o una cartella.
PRJ_NOTIFY_HARDLINK_CREATED
Valore: 0x00000100
Se specificato nell'istanza di virtualizzazione inizia:

- Indica che il provider deve ricevere una notifica che è stato creato un collegamento rigido per un file.

Se specificato in risposta a una notifica:

- Indica che il provider deve ricevere una notifica che è stato creato un collegamento rigido per il file.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valore: 0x00000200
Se specificato nell'istanza di virtualizzazione inizia:

- Il provider deve ricevere una notifica quando un handle viene chiuso in un file/cartella e l'handle di chiusura non è stato modificato né eliminato.

Se specificato in risposta a una notifica:

- Il provider deve ricevere una notifica quando gli handle vengono chiusi per il file/cartella e non sono state apportate modifiche o eliminazioni associate all'handle di chiusura.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valore: 0x00000400
Se specificato nell'istanza di virtualizzazione inizia:

- Il provider deve ricevere una notifica quando un handle viene chiuso in un file/cartella e l'handle di chiusura è stato usato per modificarlo.

Se specificato in risposta a una notifica:

- Il provider deve ricevere una notifica quando un handle viene chiuso nel file/nella cartella e l'handle di chiusura è stato usato per modificarlo.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED
Valore: 0x00000800
Se specificato nell'istanza di virtualizzazione inizia:

- Il provider deve ricevere una notifica quando un handle viene chiuso in un file/cartella ed è eliminato come parte della chiusura dell'handle.

Se specificato in risposta a una notifica:

- Il provider deve ricevere una notifica quando un handle viene chiuso nel file/nella cartella e viene eliminato come parte della chiusura dell'handle.
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL
Valore: 0x00001000
Se specificato nell'istanza di virtualizzazione inizia:

- Il provider deve ricevere una notifica quando sta per convertire un segnaposto in un file completo.

Se specificato in risposta a una notifica:

- Il provider deve ricevere una notifica quando sta per convertire il segnaposto in un file completo, presupponendo che sia un segnaposto e non già un file completo.
PRJ_NOTIFY_USE_EXISTING_MASK
Valore: 0xFFFFFFFF
Se specificato nell'istanza di virtualizzazione inizia:

- Questo valore non è valido nell'avvio dell'istanza di virtualizzazione.

Se specificato in risposta a una notifica:

- Continuare a usare il set esistente di notifiche per questo file/cartella.

Commenti

ProjFS può inviare notifiche di attività del file system a un provider. Quando il provider avvia un'istanza di virtualizzazione, specifica le notifiche che desidera ricevere. Può anche specificare un nuovo set di notifiche per un file quando viene creato o rinominato. Il provider deve registrare una routine di callback di notifica PRJ_NOTIFICATION_CB nel parametro callbacks di PrjStartVirtualizing per ricevere notifiche.

ProjFS invia notifiche per file e directory all'interno di una radice di virtualizzazione attiva. Vale a dire, ProjFS invierà notifiche per la radice di virtualizzazione e i relativi discendenti. I collegamenti simbolici e le giunzioni all'interno della radice di virtualizzazione non vengono attraversati durante la determinazione di ciò che costituisce un discendente della radice di virtualizzazione.

ProjFS invia notifiche solo per il flusso di dati primario di un file. ProjFS non invia notifiche per operazioni su flussi di dati alternativi.

ProjFS non invia notifiche per un'istanza di virtualizzazione inattiva. Un'istanza di virtualizzazione è inattiva se una delle seguenti è true:

Il provider può specificare le notifiche che desidera ricevere quando si avvia un'istanza di virtualizzazione o in risposta a una notifica che consente di impostare una nuova maschera di notifica.

Il provider specifica un set predefinito di notifiche che desidera inviare ProjFS per l'istanza di virtualizzazione all'avvio dell'istanza. Questo set di notifiche viene fornito nel membro NotificationMappings del parametro opzioni di PrjStartVirtualizing, che può specificare maschere di notifica diverse per diversi sottoalberi dell'istanza di virtualizzazione.

Il provider può scegliere di specificare una maschera di notifica diversa in risposta a una notifica di apertura, creazione, sostituzione/sovrascrittura o ridenominazione. ProjFS continuerà a inviare queste notifiche per il file specificato fino alla chiusura di tutti gli handle al file. Successivamente, verrà ripristinato il set predefinito di notifiche. Naturalmente, se il set predefinito di notifiche non specifica che ProjFS deve inviare una notifica per l'apertura, la creazione e così via, il provider non avrà la possibilità di specificare una maschera diversa per tali operazioni.

Requisiti

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