CcSetFileSizes-Funktion (ntifs.h)
Die CcSetFileSizes Routine aktualisiert die Cachezuordnungen und das Abschnittsobjekt für eine zwischengespeicherte Datei, deren Größe geändert wurde. Verwenden Sie stattdessen CcSetFileSizesEx, da sie einen NTSTATUS-Rückgabecode zusammen mit einer besseren Anleitung für die Fehlerbehandlung bereitstellt.
Syntax
void CcSetFileSizes(
[in] PFILE_OBJECT FileObject,
[in] PCC_FILE_SIZES FileSizes
);
Parameter
[in] FileObject
Zeigen Sie auf ein Dateiobjekt für die zwischengespeicherte Datei.
[in] FileSizes
Zeigen Sie auf eine CC_FILE_SIZES Struktur, die die neuen Dateigrößeninformationen enthält.
Rückgabewert
Nichts
Bemerkungen
Dateisysteme müssen CcSetFileSizesEx oder CcSetFileSizes aufrufen, um die Cache-Manager-Datenstrukturen zu aktualisieren, wenn eine der folgenden Änderungen an einer zwischengespeicherten Datei vorgenommen wird:
Die Zuordnungsgröße wird erhöht.
Die gültige Datenlänge wird verringert.
Die gültige Datenlänge wird durch einen nicht zwischengespeicherten E/A-Vorgang erhöht.
Die Dateigröße wird erhöht oder verringert.
Wenn ein Fehler auftritt, löst CcSetFileSizes eine Status ausnahme für diesen bestimmten Fehler aus. Wenn beispielsweise ein Poolzuordnungsfehler auftritt, löst CcSetFileSizes eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Um die Kontrolle zu erlangen, wenn ein Fehler auftritt, sollte der Treiber den Aufruf von CcSetFileSizes in einem try-except oder try-finally Anweisung umschließ en.
Das Dateisystem muss sicherstellen, dass die Cachezuordnung gültig ist und für die Dauer dieses Aufrufs verbleibt.
Verwenden Sie zum Zwischenspeichern einer Datei "CcInitializeCacheMap".
Um die Größe der zwischengespeicherten Datei abzurufen, übergeben Sie FileObject- an CcGetFileSizePointer-.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |