Freigeben über


CcZeroData-Funktion (ntifs.h)

Die CcZeroData Routine nullt den angegebenen Bytebereich in einer zwischengespeicherten oder nicht zwischengespeicherten Datei.

Anmerkung

Diese Routine sollte nur für null Teile einer Datei aufgerufen werden, die über die gültige Datenlänge der Datei hinausgehen. CcZeroData- werden keine zuvor geschriebenen Daten der Datei geändert. Rufen Sie CcCopyWrite-oder eine der anderen zwischengespeicherten Schreibschnittstellen auf, um die zuvor geschriebenen Daten zu null, die teil der Datei bis zur gültigen Datenlänge der Datei sind.

Syntax

BOOLEAN CcZeroData(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER StartOffset,
  [in] PLARGE_INTEGER EndOffset,
  [in] BOOLEAN        Wait
);

Parameter

[in] FileObject

Ein Zeiger auf eine FILE_OBJECT für die Datei, in der ein Bytebereich null sein soll.

[in] StartOffset

Ein Zeiger auf eine Variable, die den Byteoffset innerhalb der Datei auf das erste Byte angibt, das null sein soll.

[in] EndOffset

Ein Zeiger auf eine Variable, die den Byteoffset innerhalb der Datei auf das letzte Byte angibt, das null sein soll.

[in] Wait

Legen Sie diesen Wert auf TRUE fest,, wenn der Aufrufer in einen Wartezustand versetzt werden soll, bis der gesamte Bytebereich null ist. Andernfalls wird dieser Parameter auf FALSE-festgelegt.

Rückgabewert

CcZeroData- gibt TRUE- zurück, wenn die Daten erfolgreich nulliert werden; andernfalls wird FALSE-zurückgegeben.

Bemerkungen

Die zu verwendende Datei kann zwischengespeichert oder nicht zwischengespeichert werden. Wenn die Datei jedoch nicht zwischengespeichert ist, müssen die Werte von StartOffset und EndOffset- beide Vielfache der Größe des Volumensektors sein.

Wenn ein Poolzuordnungsfehler auftritt und Wait als TRUEangegeben wurde, löst CcZeroData eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Wenn ein Poolzuweisungsfehler auftritt und Wait als FALSE-angegeben wurde, gibt CcZeroDataFALSEzurück, löst jedoch keine Ausnahme aus.

Wenn das bereitgestellte FileObject- keine Zwischenspeicherung aktiviert hat, aber das Zwischenspeichern im Datenstrom vorhanden ist (d. h. ein anderes Dateiobjekt für dieselbe Datei hat zwischenspeicherung aktiviert), wird null behandelt, als ob die Schreib-Through-Zwischenspeicherung aktiviert ist.

Wenn Wait auf TRUEfestgelegt ist, wird CcZeroData- garantiert, dass die Null-Datenanforderung abgeschlossen und TRUE-zurückgegeben wird. Wenn die erforderlichen Seiten der zwischengespeicherten Datei bereits im Arbeitsspeicher vorhanden sind, werden die Daten sofort nulliert, und es tritt keine Blockierung auf. Wenn erforderliche Seiten nicht vorhanden sind, wird der Aufrufer in einen Wartezustand versetzt, bis alle erforderlichen Seiten resident wurden, und die Daten können null sein.

Wenn WaitFALSE- ist und die erforderlichen Seiten der zwischengespeicherten Datei nicht bereits im Arbeitsspeicher vorhanden sind, wird CcZeroData- die Blockierung verweigern und FALSE-zurückgeben.

Wenn ein Poolzuordnungsfehler auftritt, löst CcZeroData- eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Wenn CcZeroData auf andere Fehler, einschließlich E/A-Fehler, stößt, werden die Fehler an den Aufrufer ausgelöst.

Für Windows Vista und höhere Windows-Betriebssysteme lautet das Verhalten von CcZeroData- wie folgt:

  • Wenn der Datenstrom zwischengespeichert und write_through ist, muss StartOffset- nicht sektoriert ausgerichtet werden.
  • Wenn EndOffset- nicht ausgerichtet ist, wird sie auf die nächste Sektorgröße aufgerundet.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000. Änderungen für Vista und spätere Betriebssysteme finden Sie in den Hinweisen.
Zielplattform- Universal
Header- ntifs.h (einschließlich Fltkernel.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <=APC_LEVEL

Siehe auch

CcInitializeCacheMap-

CcIsFileCached-

FILE_OBJECT