Compartir a través de


PRJ_NOTIFY_TYPES enumeración (projectedfslib.h)

Tipos de notificaciones que describen un cambio en el archivo o carpeta.

Syntax

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
} ;

Constantes

 
PRJ_NOTIFY_NONE
Valor: 0x00000000
sin notificación.
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS
Valor: 0x00000001
Si se especifica en el inicio de la instancia de virtualización:

: indica que no se deben enviar notificaciones para la instancia de virtualización o un subárbol especificado de la instancia.

Si se especifica en respuesta a una notificación:

: indica que las notificaciones no se deben enviar para el archivo o carpeta especificados hasta que se cierren todos los identificadores.

Nota Si este bit aparece en una máscara de notificación, invalida todos los demás bits de la máscara. Por ejemplo, una máscara válida con este bit se trata como que solo contiene PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS.

 
PRJ_NOTIFY_FILE_OPENED
Valor: 0x00000002
Si se especifica en el inicio de la instancia de virtualización:

: indica que se debe notificar al proveedor cuando se crea un identificador en un archivo o carpeta existente.

Si se especifica en respuesta a una notificación:

: indica que se debe notificar al proveedor si se crean más identificadores en el archivo o carpeta.
PRJ_NOTIFY_NEW_FILE_CREATED
Valor: 0x00000004
Si se especifica en el inicio de la instancia de virtualización:

- El proveedor debe recibir una notificación cuando se crea un nuevo archivo o carpeta.

Si se especifica en respuesta a una notificación:

- Sin efecto.
PRJ_NOTIFY_FILE_OVERWRITTEN
Valor: 0x00000008
Si se especifica en el inicio de la instancia de virtualización:

: indica que el proveedor debe recibir una notificación cuando existe cuando se sobrescribe o se superpone un archivo existente.

Si se especifica en respuesta a una notificación:

: indica que el proveedor debe recibir una notificación cuando el archivo o carpeta se sobrescribe o se superpone.
PRJ_NOTIFY_PRE_DELETE
Valor: 0x00000010
Si se especifica en el inicio de la instancia de virtualización:

: indica que se debe notificar al proveedor cuando se va a eliminar un archivo o carpeta.

Si se especifica en respuesta a una notificación:

: indica que se debe notificar al proveedor cuando se va a eliminar un archivo o carpeta.
PRJ_NOTIFY_PRE_RENAME
Valor: 0x00000020
Si se especifica en el inicio de la instancia de virtualización:

: indica que se debe notificar al proveedor cuando se va a cambiar el nombre de un archivo o carpeta.

Si se especifica en respuesta a una notificación:

: indica que se debe notificar al proveedor cuando se va a cambiar el nombre de un archivo o carpeta.
PRJ_NOTIFY_PRE_SET_HARDLINK
Valor: 0x00000040
Si se especifica en el inicio de la instancia de virtualización:

: indica que se debe notificar al proveedor cuando se va a crear un vínculo físico para un archivo.

Si se especifica en respuesta a una notificación:

: indica que se debe notificar al proveedor cuando se va a crear un vínculo físico para un archivo.
PRJ_NOTIFY_FILE_RENAMED
Valor: 0x00000080
Si se especifica en el inicio de la instancia de virtualización:

: indica que se debe notificar al proveedor que se ha cambiado el nombre de un archivo o carpeta.

Si se especifica en respuesta a una notificación:

: indica que se debe notificar al proveedor cuando se ha cambiado el nombre de un archivo o carpeta.
PRJ_NOTIFY_HARDLINK_CREATED
Valor: 0x00000100
Si se especifica en el inicio de la instancia de virtualización:

- Indica que se debe notificar al proveedor que se ha creado un vínculo físico para un archivo.

Si se especifica en respuesta a una notificación:

- Indica que se debe notificar al proveedor que se ha creado un vínculo físico para el archivo.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valor: 0x00000200
Si se especifica en el inicio de la instancia de virtualización:

- El proveedor debe recibir una notificación cuando se cierra un identificador en un archivo o carpeta y el identificador de cierre no se modifica ni se elimina.

Si se especifica en respuesta a una notificación:

- El proveedor debe recibir una notificación cuando se cierran los identificadores para el archivo o carpeta y no se han producido modificaciones ni eliminaciones asociadas al identificador de cierre.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valor: 0x00000400
Si se especifica en el inicio de la instancia de virtualización:

- El proveedor debe recibir una notificación cuando se cierra un identificador en un archivo o carpeta y se usó el identificador de cierre para modificarlo.

Si se especifica en respuesta a una notificación:

- El proveedor debe recibir una notificación cuando se cierra un identificador en el archivo o carpeta y se usó el identificador de cierre para modificarlo.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED
Valor: 0x00000800
Si se especifica en el inicio de la instancia de virtualización:

- El proveedor debe recibir una notificación cuando se cierra un identificador en un archivo o carpeta y se elimina como parte del cierre del identificador.

Si se especifica en respuesta a una notificación:

- El proveedor debe recibir una notificación cuando se cierra un identificador en el archivo o carpeta y se elimina como parte del cierre del identificador.
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL
Valor: 0x00001000
Si se especifica en el inicio de la instancia de virtualización:

- El proveedor debe recibir una notificación cuando está a punto de convertir un marcador de posición en un archivo completo.

Si se especifica en respuesta a una notificación:

- El proveedor debe recibir una notificación cuando está a punto de convertir el marcador de posición en un archivo completo, suponiendo que es un marcador de posición y aún no es un archivo completo.
PRJ_NOTIFY_USE_EXISTING_MASK
Valor: 0xFFFFFFFF
Si se especifica en el inicio de la instancia de virtualización:

: este valor no es válido al iniciar la instancia de virtualización.

Si se especifica en respuesta a una notificación:

- Siga usando el conjunto de notificaciones existente para este archivo o carpeta.

Comentarios

ProjFS puede enviar notificaciones de actividad del sistema de archivos a un proveedor. Cuando el proveedor inicia una instancia de virtualización, especifica qué notificaciones desea recibir. También puede especificar un nuevo conjunto de notificaciones para un archivo cuando se crea o se cambia el nombre. El proveedor debe registrar una rutina de devolución de llamada de notificación de PRJ_NOTIFICATION_CB en el parámetro callbacks de PrjStartVirtualizing para recibir notificaciones.

ProjFS envía notificaciones para archivos y directorios dentro de una raíz de virtualización activa. Es decir, ProjFS enviará notificaciones para la raíz de virtualización y sus descendientes. Los vínculos simbólicos y las uniones dentro de la raíz de virtualización no se atraviesan al determinar lo que constituye un descendiente de la raíz de virtualización.

ProjFS envía notificaciones solo para el flujo de datos principal de un archivo. ProjFS no envía notificaciones para las operaciones en flujos de datos alternativos.

ProjFS no envía notificaciones para una instancia de virtualización inactiva. Una instancia de virtualización está inactiva si se cumple alguna de las siguientes condiciones:

El proveedor puede especificar qué notificaciones desea recibir al iniciar una instancia de virtualización o en respuesta a una notificación que permite establecer una nueva máscara de notificación.

El proveedor especifica un conjunto predeterminado de notificaciones que quiere que ProjFS envíe para la instancia de virtualización cuando inicia la instancia. Este conjunto de notificaciones se proporciona en el miembro NotificationMappings del parámetro options de PrjStartVirtualizing, que puede especificar diferentes máscaras de notificación para diferentes subárboles de la instancia de virtualización.

El proveedor puede optar por proporcionar una máscara de notificación diferente en respuesta a una notificación de apertura de archivos, crear, reemplazar o sobrescribir o cambiar el nombre. ProjFS seguirá enviando estas notificaciones para el archivo especificado hasta que se cierren todos los identificadores del archivo. Después, volverá al conjunto predeterminado de notificaciones. Naturalmente, si el conjunto predeterminado de notificaciones no especifica que ProjFS debe notificar a open, create, etc., el proveedor no obtendrá la oportunidad de especificar una máscara diferente para esas operaciones.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1809 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server [solo aplicaciones de escritorio]
Encabezado projectedfslib.h