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 aún no lo ha iniciado llamando a PrjStartVirtualizing.
- El proveedor ha detenido la instancia mediante una llamada a PrjStopVirtualizing.
- El proceso del proveedor ha salido
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 |