Función FindFirstChangeNotificationA (fileapi.h)

Crea un identificador de notificación de cambio y configura las condiciones iniciales del filtro de notificación de cambio. Una espera en un identificador de notificación se realiza correctamente cuando se produce un cambio que coincida con las condiciones de filtro en el directorio o subárbol especificados. La función no notifica cambios en el propio directorio especificado.

Esta función no indica el cambio que cumplió la condición de espera. Para recuperar información sobre el cambio específico como parte de la notificación, use
Función ReadDirectoryChangesW .

Sintaxis

HANDLE FindFirstChangeNotificationA(
  [in] LPCSTR lpPathName,
  [in] BOOL   bWatchSubtree,
  [in] DWORD  dwNotifyFilter
);

Parámetros

[in] lpPathName

Ruta de acceso completa del directorio que se va a inspeccionar.

No puede ser una ruta de acceso relativa ni una cadena vacía.

De forma predeterminada, el nombre está limitado a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\\ " a la ruta de acceso. Para obtener más información, vea Nomenclatura de archivos, rutas de acceso y espacios de nombres.

Sugerencia

A partir de Windows 10, versión 1607, puede optar por quitar la limitación de MAX_PATH sin prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Nombres de archivos, rutas de acceso y espacios de nombres para obtener más información.

[in] bWatchSubtree

Si este parámetro es TRUE, la función supervisa el árbol de directorios raíz en el directorio especificado; si es FALSE, solo supervisa el directorio especificado.

[in] dwNotifyFilter

Condiciones de filtro que satisfacen una espera de notificación de cambio. Este parámetro puede ser uno o más de los siguientes valores.

Value Significado
FILE_NOTIFY_CHANGE_FILE_NAME
0x00000001
Cualquier cambio de nombre de archivo en el directorio o subárbol inspeccionados provoca la devolución de una operación de espera de la notificación del cambio. Entre los cambios se incluyen la creación, eliminación o cambio del nombre de un archivo.
FILE_NOTIFY_CHANGE_DIR_NAME
0x00000002
Cualquier cambio de nombre de directorio en el directorio o subárbol inspeccionado hace que se devuelva una operación de espera de notificación de cambio. Los cambios incluyen la creación o eliminación de un directorio.
FILE_NOTIFY_CHANGE_ATTRIBUTES
0x00000004
Cualquier cambio de atributo en el directorio o subárbol inspeccionados provoca la devolución de una operación de espera de la notificación del cambio.
FILE_NOTIFY_CHANGE_SIZE
0x00000008
Cualquier cambio de tamaño de archivo en el directorio o subárbol inspeccionados provoca la devolución de una operación de espera de la notificación del cambio. El sistema operativo detecta un cambio en el tamaño de archivo solo cuando el archivo se escribe en el disco. Para los sistemas operativos que usan el almacenamiento en caché completo, la detección solo aparece cuando la memoria caché se vacía suficientemente.
FILE_NOTIFY_CHANGE_LAST_WRITE
0x00000010
Cualquier cambio de la última escritura de los archivos en el directorio o subárbol inspeccionados provoca la devolución de una operación de espera de la notificación del cambio. El sistema operativo detecta un cambio en la última escritura solo cuando el archivo se escribe en el disco. Para los sistemas operativos que usan el almacenamiento en caché completo, la detección solo aparece cuando la memoria caché se vacía suficientemente.
FILE_NOTIFY_CHANGE_SECURITY
0x00000100
Cualquier cambio de descriptor de seguridad en el directorio o subárbol inspeccionado hace que se devuelva una operación de espera de notificación de cambio.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un identificador de un objeto de notificación de cambio de búsqueda.

Si se produce un error en la función, el valor devuelto es INVALID_HANDLE_VALUE. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Las funciones de espera pueden supervisar el directorio o subárbol especificado mediante el identificador devuelto por la función FindFirstChangeNotification . Se cumple una espera cuando se produce una de las condiciones de filtro en el directorio o subárbol supervisado.

Una vez satisfecho la espera, la aplicación puede responder a esta condición y continuar supervisando el directorio llamando a la función FindNextChangeNotification y a la función de espera adecuada. Cuando el identificador ya no es necesario, se puede cerrar mediante la función FindCloseChangeNotification .

Es posible que no se devuelvan notificaciones al llamar a FindFirstChangeNotification para un sistema de archivos remoto.

Comportamiento de vínculo simbólico: si la ruta de acceso apunta a un vínculo simbólico, se crea el identificador de notificación para el destino.

Si una aplicación se ha registrado para recibir notificaciones de cambio para un directorio que contiene vínculos simbólicos, la aplicación solo se notifica cuando se han cambiado los vínculos simbólicos, no los archivos de destino.

En Windows 8 y Windows Server 2012, esta función es compatible con las siguientes tecnologías.

Tecnología Compatible
Protocolo bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de volumen compartido de clúster (CsvFS) Ver comentarios
Sistema de archivos resistente a errores (ReFS)
 

Es posible que la aplicación experimente falsos positivos en csvFs pause/resume.

Ejemplos

Para obtener un ejemplo, vea Obtener Change_Notifications de directorio.

Nota:

El encabezado fileapi.h define FindFirstChangeNotification como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado fileapi.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones de administración de directorios

FindCloseChangeNotification

FindNextChangeNotification

ReadDirectoryChangesW