Freigeben über


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

Siehe auch

CcInitializeCacheMap-

CcSetFileSizesEx-