CcSetFileSizesEx-Funktion (ntifs.h)
Die CcSetFileSizesEx Routine aktualisiert die Cachezuordnungen und das Abschnittsobjekt für eine zwischengespeicherte Datei, deren Größe geändert wurde.
Syntax
NTSTATUS CcSetFileSizesEx(
PFILE_OBJECT FileObject,
PCC_FILE_SIZES FileSizes
);
Parameter
FileObject
[in] Zeigen Sie auf ein Dateiobjekt für die zwischengespeicherte Datei.
FileSizes
[in] Zeigen Sie auf eine CC_FILE_SIZES Struktur, die die neuen Dateigrößeninformationen enthält.
Rückgabewert
CcSetFileSizesEx gibt STATUS_SUCCESS zurück, wenn die Dateigröße erfolgreich geändert wurde, und wenn eine Bereinigung erforderlich war, dass die Bereinigung erfolgreich war. Andernfalls wird ein nicht erfolgreicher NSTATUS-Code wie STATUS_INSUFFICIENT_RESOURCES zurückgegeben und kann eine Status ausnahme auslösen.
Bezüglich des Auslösens einer Status-Ausnahme beim Fehler:
Wenn der Vorgang bewirkt, dass CcSetFileSizesEx die Datei geleert und/oder löscht, wird CcSetFileSizesEx keine Fehler auslösen; es gibt nur den entsprechenden nicht erfolgreichen NTSTATUS-Code des Lösch- oder Löschvorgangs zurück.
Wenn der Vorgang bewirkt, dass CcSetFileSizesEx- den Abschnitt erweitern soll, löst CcSetFileSizesEx- einen Fehler aus, der während dieser Erweiterung erreicht wird.
Bemerkungen
Dateisysteme müssen CcSetFileSizesEx- 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 der Vorgang bewirkt, dass CcSetFileSizesEx- den Abschnitt erweitern und ein Fehler auftritt, löst CcSetFileSizesEx eine Statusausnahme für diesen bestimmten Fehler aus. Wenn beispielsweise ein Poolzuordnungsfehler auftritt, löst CcSetFileSizesEx- eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Um die Kontrolle zu erlangen, wenn ein Fehler auftritt, sollte der Treiber den Aufruf von CcSetFileSizesEx 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 |
---|---|
Header- | ntifs.h |