Freigeben über


FindFirstChangeNotificationW-Funktion (fileapi.h)

Erstellt ein Änderungsbenachrichtigungshandle und richtet anfängliche Änderungsbenachrichtigungsfilterbedingungen ein. Eine Wartezeit auf ein Benachrichtigungshandle ist erfolgreich, wenn eine Änderung, die den Filterbedingungen entspricht, in der angegebenen Verzeichnis- oder Unterstruktur auftritt. Die Funktion meldet keine Änderungen an dem angegebenen Verzeichnis selbst.

Diese Funktion gibt nicht die Änderung an, die die Wartebedingung erfüllt hat. Um Informationen zur spezifischen Änderung als Teil der Benachrichtigung abzurufen, verwenden Sie die
ReadDirectoryChangesW--Funktion.

Syntax

HANDLE FindFirstChangeNotificationW(
  [in] LPCWSTR lpPathName,
  [in] BOOL    bWatchSubtree,
  [in] DWORD   dwNotifyFilter
);

Parameter

[in] lpPathName

Der vollständige Pfad des zu überwachenden Verzeichnisses.

Dies kann kein relativer Pfad oder eine leere Zeichenfolge sein.

Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um diesen Grenzwert auf 32.767 breite Zeichen zu erweitern, stellen Sie "\\?\" dem Pfad voran. Weitere Informationen finden Sie unter Namensdateien, Pfade und Namespaces.

Trinkgeld

Ab Windows 10, Version 1607, können Sie sich anmelden, um die MAX_PATH Einschränkung zu entfernen, ohne "\\?\". Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbeschränkung" Benennungsdateien, Pfade und Namespaces.

[in] bWatchSubtree

Wenn dieser Parameter TRUEist, überwacht die Funktion die Verzeichnisstruktur, die im angegebenen Verzeichnis verwurzelt ist; Wenn es FALSE-ist, überwacht es nur das angegebene Verzeichnis.

[in] dwNotifyFilter

Die Filterbedingungen, die eine Änderungsbenachrichtigung erfüllen, warten. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
FILE_NOTIFY_CHANGE_FILE_NAME
0x00000001
Jede Änderung des Dateinamens im überwachten Verzeichnis oder unterstruktur bewirkt, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird. Änderungen umfassen das Umbenennen, Erstellen oder Löschen eines Dateinamens.
FILE_NOTIFY_CHANGE_DIR_NAME
0x00000002
Eine Änderung des Verzeichnisnamens im überwachten Verzeichnis oder in der Überwachten Unterstruktur führt dazu, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird. Änderungen umfassen das Erstellen oder Löschen eines Verzeichnisses.
FILE_NOTIFY_CHANGE_ATTRIBUTES
0x00000004
Jede Attributänderung im überwachten Verzeichnis oder unterstruktur bewirkt, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird.
FILE_NOTIFY_CHANGE_SIZE
0x00000008
Jede Änderung der Dateigröße im überwachten Verzeichnis oder in der Überwachten Unterstruktur führt dazu, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird. Das Betriebssystem erkennt eine Änderung der Dateigröße nur, wenn die Datei auf den Datenträger geschrieben wird. Bei Betriebssystemen, die umfangreiches Caching verwenden, tritt die Erkennung nur auf, wenn der Cache ausreichend geleert wird.
FILE_NOTIFY_CHANGE_LAST_WRITE
0x00000010
Jede Änderung an der letzten Schreibzeit von Dateien im überwachten Verzeichnis oder unterstruktur bewirkt, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird. Das Betriebssystem erkennt eine Änderung an der letzten Schreibzeit nur, wenn die Datei auf den Datenträger geschrieben wird. Bei Betriebssystemen, die umfangreiches Caching verwenden, tritt die Erkennung nur auf, wenn der Cache ausreichend geleert wird.
FILE_NOTIFY_CHANGE_SECURITY
0x00000100
Jede Sicherheitsdeskriptoränderung im überwachten Verzeichnis oder unterstruktur bewirkt, dass ein Änderungsbenachrichtigungs-Wartevorgang zurückgegeben wird.

Rückgabewert

Wenn die Funktion erfolgreich ist, handelt es sich beim Rückgabewert um ein Handle für ein Find Change Notification-Objekt.

Wenn die Funktion fehlschlägt, wird der Rückgabewert INVALID_HANDLE_VALUE. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Die Wait-Funktionen können das angegebene Verzeichnis oder die angegebene Unterstruktur mithilfe des von der FindFirstChangeNotification Funktion zurückgegebenen Handle überwachen. Eine Wartezeit ist erfüllt, wenn eine der Filterbedingungen im überwachten Verzeichnis oder unterstruktur auftritt.

Nachdem die Wartezeit erfüllt wurde, kann die Anwendung auf diese Bedingung reagieren und die Überwachung des Verzeichnisses fortsetzen, indem sie die FindNextChangeNotification-Funktion und die entsprechende Wartefunktion aufrufen. Wenn der Ziehpunkt nicht mehr benötigt wird, kann er mithilfe der FindCloseChangeNotification-Funktion geschlossen werden.

Benachrichtigungen werden möglicherweise nicht zurückgegeben, wenn FindFirstChangeNotification- für ein Remotedateisystem aufgerufen wird.

Verhalten für symbolische Verknüpfungen – Wenn der Pfad auf einen symbolischen Link verweist, wird der Benachrichtigungshandle für das Ziel erstellt.

Wenn eine Anwendung registriert wurde, um Änderungsbenachrichtigungen für ein Verzeichnis zu erhalten, das symbolische Verknüpfungen enthält, wird die Anwendung nur benachrichtigt, wenn die symbolischen Verknüpfungen geändert wurden, nicht die Zieldateien.

In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Abgestützt
Server Message Block (SMB) 3.0-Protokoll Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Skalierungsdateifreigaben (SO) Ja
Freigegebenes Clustervolumedateisystem (CsvFS) Siehe Hinweis
Resilient File System (ReFS) Ja
 

Die Anwendung kann falsch positive Ergebnisse auf CSVFs anhalten/fortsetzen.

Beispiele

Ein Beispiel finden Sie unter Abrufen von Verzeichnis-Change_Notifications.

Anmerkung

Der Fileapi.h-Header definiert FindFirstChangeNotification als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- fileapi.h (include Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

Verzeichnisverwaltungsfunktionen

FindCloseChangeNotification

FindNextChangeNotification

ReadDirectoryChangesW-