Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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_NONEValor: 0x00000000 sin notificación. |
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONSValor: 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_OPENEDValor: 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_CREATEDValor: 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_OVERWRITTENValor: 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_DELETEValor: 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_RENAMEValor: 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_HARDLINKValor: 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_RENAMEDValor: 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_CREATEDValor: 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_MODIFICATIONValor: 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_MODIFIEDValor: 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_DELETEDValor: 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_FULLValor: 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_MASKValor: 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 |