ClfsMgmtSetLogFileSize-Funktion (wdm.h)

Die ClfsMgmtSetLogFileSize-Routine fügt einem Protokoll Container hinzu oder löscht Container aus einem Protokoll.

Syntax

CLFSUSER_API NTSTATUS ClfsMgmtSetLogFileSize(
  [in]           PLOG_FILE_OBJECT                     LogFile,
  [in]           PULONGLONG                           NewSizeInContainers,
  [out]          PULONGLONG                           ResultingSizeInContainers,
  [in, optional] PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine,
  [in, optional] PVOID                                CompletionRoutineData
);

Parameter

[in] LogFile

Ein Zeiger auf eine LOG_FILE_OBJECT-Struktur , die das CLFS-Protokoll darstellt, oder auf einen Stream innerhalb des Protokolls, dem Container hinzugefügt oder gelöscht werden.

[in] NewSizeInContainers

Ein Zeiger auf die angeforderte Protokollgröße. Der Aufrufer legt diesen Parameter auf einen der folgenden Werte fest.

Wert Bedeutung
0 Erzwingen Sie die Mindestgrößesrichtlinie. Weitere Informationen zu dieser Richtlinie finden Sie unter ClfsMgmtInstallPolicy.

Wenn eine Richtlinie für die Mindestgröße nicht installiert ist, tritt eine der folgenden Aktionen auf:

  • Wenn das Protokoll derzeit weniger als 2 Container enthält, wird das Protokoll auf eine Größe von 2 Containern erweitert.
  • Wenn das Protokoll derzeit über 2 oder mehr Container verfügt, werden keine Änderungen vorgenommen, und der Aufruf ist erfolgreich.
Wenn eine Richtlinie für eine Mindestgröße installiert ist, tritt eine der folgenden Aktionen auf:
  • Wenn das Protokoll derzeit weniger als die Mindestanzahl von Containern aufweist, die in der Richtlinie für die Mindestgröße angegeben sind, wird das Protokoll auf die von der Richtlinie angegebene Mindestanzahl von Containern erweitert.
  • Wenn die Anzahl der Container im Protokoll größer oder gleich der Mindestanzahl von Containern ist, die in der Richtlinie für die Mindestgröße angegeben ist, werden keine Änderungen vorgenommen, und der Aufruf ist ohne Fehler erfolgreich.
1 Ungültiger Wert. Der Aufruf schlägt fehl und gibt STATUS_INVALID_VALUE zurück.
2 bis 1023 Die gewünschte Größe des Protokolls, ausgedrückt als Die Anzahl der Container.

Wenn diese Zahl kleiner als die mindeste Anzahl von Containern ist, die in der installierten Richtlinie angegeben ist, schlägt der Aufruf mit ERROR_COULD_NOT_RESIZE_LOG fehl.

Wenn diese Zahl größer als die maximale Anzahl von Containern ist, die in der installierten Richtlinie angegeben ist, wird das Protokoll nur bis zur von der Richtlinie angegebenen maximalen Anzahl von Containern erweitert, und der Aufruf ist ohne Fehler erfolgreich.

1024 bis MAXULONGLONG Wenn keine Richtlinie für maximale Größe installiert ist, schlägt der Aufruf fehl und gibt ERROR_LOG_POLICY_CONFLICT zurück.

Wenn eine Richtlinie für maximale Größe installiert ist, wird das Protokoll auf die maximale Anzahl von Containern erweitert, die in der Richtlinie für die maximale Größe angegeben ist, und der Aufruf wird ohne Fehler ausgeführt.

 

Verwenden Sie den Parameter ResultSizeInContainers , um die tatsächliche Protokollgröße zu bestimmen, die sich möglicherweise von der angeforderten Größe unterscheidet.

[out] ResultingSizeInContainers

Ein Zeiger auf die resultierende Protokollgröße. Bei erfolgreicher Ausführung schreibt die Routine die tatsächliche Größe des Protokolls, ausgedrückt als die Anzahl der Container im Protokoll, in den Speicherort, auf den dieser Parameter verweist.

[in, optional] CompletionRoutine

Wird nicht verwendet. Auf NULL festgelegt.

[in, optional] CompletionRoutineData

Wird nicht verwendet. Auf NULL festgelegt.

Rückgabewert

Die ClfsMgmtSetLogFileSize-Routine gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Größe der Protokolldatei wurde festgelegt. Der Parameter ResultSizeInContainers enthält die aktuelle Größe des Protokolls.
STATUS_UNSUCCESSFUL
Die CLFS-Verwaltung konnte die Protokolldateigröße nicht festlegen.
STATUS_INVALID_PARAMETER_1
Der Wert des LogFile-Parameters ist NULL, oder der Inhalt des NewSizeInContainers-Parameters ist 1.
STATUS_INVALID_PARAMETER_2
Der Wert des Parameters NewSizeInContainers ist NULL.
STATUS_LOG_POLICY_INVALID
Es besteht ein Konflikt zwischen den Richtlinien für die maximale Größe und der Mindestgröße für das Protokoll.
STATUS_COULD_NOT_RESIZE_LOG
Die CLFS-Verwaltung konnte nicht genügend Container löschen, um NewSizeInContainers zu erreichen.
STATUS_LOG_POLICY_CONFLICT
Die CLFS-Verwaltung konnte dem Protokoll nicht genügend Container hinzufügen, um NewSizeInContainers zu erreichen. Dies kann auf einen Konflikt mit einer Richtlinie zurückzuführen sein, die vom Client festgelegt wurde.
 

Diese Routine kann auch andere NTSTATUS-Werte zurückgeben.

Hinweise

Die ClfsMgmtSetLogFileSize-Routine wird in der Regel nur verwendet, wenn ein Client gestartet oder beendet wird. Rufen Sie die ClfsMgmtSetLogFileSize-Routine nicht aus Ihrer ClfsAdvanceTailCallback-Funktion auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Server 2003 R2 und Windows Vista.
Zielplattform Desktop
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

Weitere Informationen

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy