Freigeben über


Anbieterübersicht

Der Anbieter ist eine Anwendung im Benutzermodus, die einen Sicherungsdatenspeicher verwaltet und versteht. Der Anbieter implementiert ProjFS-Rückrufe und verwendet die ProjFS-API, um diesen Datenspeicher in das Dateisystem zu projizieren, wo er dem Benutzer als Dateien und Verzeichnisse angezeigt wird. Der Sicherungsspeicher des Anbieters kann lokal für das System des Benutzers sein oder sich remote befinden.

Datenprojektion

Der Teil des Dateisystems, den der Anbieter besitzt, in dem seine Daten projiziert werden, befindet sich in einem Verzeichnis namens "Virtualisierungsstamm". Wenn der Anbieter mit der Projizierung seiner Daten beginnen möchte, startet er ein "Virtualisierungs-instance", bei dem es sich um ein Objekt handelt, das die Kommunikation zwischen dem Anbieter und ProjFS für die Gruppe von Dateien und Verzeichnissen verwaltet, die sich unter einem bestimmten Virtualisierungsstamm befinden. Alle Dateien und Verzeichnisse, die Nachfolger des Virtualisierungsstamms sind und nicht lokal vom Benutzer erstellt wurden, werden vom Anbieter über die ProjFS-API materialisiert. Diese Elemente beginnen als virtuelle Dateien und Verzeichnisse, was bedeutet, dass sie nicht auf dem lokalen Speichergerät des Benutzers vorhanden sind, sondern von ProjFS in Enumerationsergebnisse eingefügt werden. Wenn die Elemente geöffnet und gelesen werden, ruft ProjFS Vom Anbieter implementierte Rückrufe zum Anfordern von Daten auf, und der Anbieter verwendet ProjFS-APIs, um diese Daten an den lokalen Speicher zu senden, wo sie für den nachfolgenden Zugriff zwischengespeichert werden. Wenn sich die Benutzeransicht des Sicherungsdatenspeichers ändern muss, kann der Anbieter für instance, wenn sich der Inhalt des Datenspeichers geändert hat, mithilfe von ProjFS-APIs lokale Elemente aktualisieren oder löschen, um die neue Ansicht des Datenspeichers widerzuspiegeln.

Rückrufrückgabecodes

Jeder Rückruf listet eine Reihe möglicher Rückgabewerte auf, die für diesen Rückruf spezifisch sind. Zusätzlich zu den Rückgabewerten, die für einen bestimmten Rückruf aufgeführt sind, kann ein Rückruf auch bestimmte andere Fehlercodes zurückgeben. Dies ist die vollständige Liste der Fehlercodes, die ein Rückruf möglicherweise zurückgibt:

Fehlercode Bedeutung
S_OK Vorgang erfolgreich
E_OUTOFMEMORY Fehler beim Zuweisen des erforderlichen Arbeitsspeichers.
HRESULT_FROM_WIN32(ERROR_IO_PENDING) Der Anbieter möchte den Vorgang zu einem späteren Zeitpunkt abschließen.
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) Ein Puffer, der an einen Rückruf übergeben wurde, war zu klein.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) Die Datei ist nicht im Sicherungsspeicher des Anbieters vorhanden.
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER) Ein Rückrufargument ist ungültig. Beispielsweise entspricht eine Enumerations-ID nicht einer aktiven Enumerationssitzung.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) Der Anbieter möchte verhindern, dass ein Vorgang, z. B. eine Umbenennung oder ein Löschen, ausgeführt wird.

Rückrufe können auch alle Fehler zurückgeben, die sie möglicherweise von Aufrufen von ProjFS-APIs erhalten. Wenn ein Rückruf einen Fehlercode zurückgibt, der sich nicht in der vorherigen Liste befindet oder der nicht von einer ProjFS-API stammt, gibt ProjFS ihn als STATUS_INTERNAL_ERROR an das Dateisystem zurück.