Freigeben über


PRJ_NOTIFICATION_CB Rückruffunktion (projectedfslib.h)

Sendet Benachrichtigungen an den Anbieter zu Dateisystemvorgängen.

Syntax

PRJ_NOTIFICATION_CB PrjNotificationCb;

HRESULT PrjNotificationCb(
  [in]           const PRJ_CALLBACK_DATA *callbackData,
  [in]           BOOLEAN isDirectory,
  [in]           PRJ_NOTIFICATION notification,
  [in, optional] PCWSTR destinationFileName,
  [in, out]      PRJ_NOTIFICATION_PARAMETERS *operationParameters
)
{...}

Parameter

[in] callbackData

Informationen zum Vorgang. Die folgenden callbackData-Member sind erforderlich, um diesen Rückruf zu implementieren:

FilePathName Gibt den Pfad für die Datei oder das Verzeichnis an, auf das sich die Benachrichtigung bezieht.

Der Anbieter kann nur während der Ausführung des Rückrufs auf diesen Puffer zugreifen. Wenn der Vorgang geschrieben werden soll und Daten aus diesem Puffer benötigt werden, muss er eine eigene Kopie davon erstellen.

[in] isDirectory

TRUE, wenn das Feld FilePathName in callbackData auf ein Verzeichnis verweist, andernfalls FALSE.

[in] notification

Ein PRJ_NOTIFICATION Wert, der die Benachrichtigung angibt.

[in, optional] destinationFileName

Wenn die BenachrichtigungPRJ_NOTIFICATION_PRE_RENAME oder PRJ_NOTIFICATION_PRE_SET_HARDLINK ist, verweist dies auf eine Unicode-Zeichenfolge mit Null-Beendigung, die den Pfad relativ zum Virtualisierungsstamm des Ziels des Umbenennungs- oder Set-Hardlink-Vorgangs angibt.

[in, out] operationParameters

Ein Zeiger auf eine PRJ_NOTIFICATION_PARAMETERS Union, die zusätzliche Parameter für bestimmte Benachrichtigungswerte angibt:

PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED oder PRJ_NOTIFICATION_FILE_OVERWRITTEN

Die Felder des PostCreate-Elements werden angegeben. Die Felder lauten:

NotificationMask

Nach der Rückkehr vom PRJ_NOTIFICATION_CB Rückrufs kann der Anbieter einen neuen Satz von Benachrichtigungen angeben, die er für die Datei erhalten möchte.

Wenn der Anbieter diesen Wert auf 0 festlegt, entspricht dies der Angabe PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_RENAMED

Die Felder des FileRenamed-Elements werden angegeben. Die Felder lauten:

NotificationMask

Nach der Rückkehr vom PRJ_NOTIFICATION_CB Rückrufs kann der Anbieter einen neuen Satz von Benachrichtigungen angeben, die er für die Datei erhalten möchte.

Wenn der Anbieter diesen Wert auf 0 festlegt, entspricht dies der Angabe PRJ_NOTIFY_USE_EXISTING_MASK.

PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED

  • Die Felder des FileDeletedOnHandleClose-Members werden angegeben. Die Felder lauten:

    NotificationMask

    Wenn der Anbieter sowohl für PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED als auch für PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED registriert ist, wird dieses Feld auf TRUE festgelegt, wenn die Datei vor dem Löschen geändert wurde.

Rückgabewert

Rückgabecode BESCHREIBUNG
S_OK
Der Anbieter hat die Benachrichtigung erfolgreich verarbeitet.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
Der Anbieter möchte den Vorgang zu einem späteren Zeitpunkt abschließen.
 

Ein entsprechender HRESULT-Fehlercode, wenn der Anbieter den Vorgang ausschlägt. Bei Pre-Operation-Benachrichtigungen (Vorgänge mit "PRE" in ihrem Namen), wenn der Anbieter einen Fehlercode zurückgibt, schlägt ProjFS den entsprechenden Vorgang mit dem angegebenen Fehlercode fehl.

Hinweise

Dieser Rückruf ist optional. Wenn der Anbieter keine Implementierung dieses Rückrufs zur Verfügung stellt, empfängt er keine Benachrichtigungen.

Der Anbieter registriert sich für die Benachrichtigungen, die er empfangen möchte, wenn er PrjStartVirtualizing aufruft.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile projectedfslib.h