Freigeben über


ClfsAddLogContainerSet-Funktion (wdm.h)

Das ClfsAddLogContainerSet routinemäßig eine Reihe von Containern zu einem CLFS-Protokoll hinzufügt.

Syntax

CLFSUSER_API NTSTATUS ClfsAddLogContainerSet(
  [in]           PLOG_FILE_OBJECT plfoLog,
  [in]           USHORT           cContainers,
  [in, optional] PULONGLONG       pcbContainer,
  [in]           PUNICODE_STRING  rguszContainerPath
);

Parameter

[in] plfoLog

Ein Zeiger auf eine LOG_FILE_OBJECT Struktur, die das Protokoll darstellt, dem die Container hinzugefügt werden. Der Aufrufer hat diesen Zeiger zuvor durch Aufrufen ClfsCreateLogFileabgerufen.

[in] cContainers

Die Anzahl der Container im Satz. Dies ist die Anzahl der Elemente im rguszContainerPath Array.

[in, optional] pcbContainer

Ein Zeiger auf eine ULONGLONG-Typvariable. Die Rolle dieses Parameters hängt davon ab, ob das Protokoll derzeit über mindestens einen Container verfügt.

  • Wenn das Protokoll derzeit über keine Container verfügt, liefert der Aufrufer eine positive ganze Zahl, die die angeforderte Größe in Bytes eines einzelnen Containers darstellt. CLFS erstellt Container, die die angeforderte Größe auf ein Vielfaches von 512 KB (für ein dediziertes Protokoll) oder 1 MB (für ein Multiplexed-Protokoll) aufgerundet sind.
  • Wenn das Protokoll derzeit über mindestens einen Container verfügt und dieser Parameter der NULL- Zeiger ist, erstellt CLFS neue Container, die die gleiche Größe wie die vorhandenen Container aufweisen. (Alle Container in einem Protokoll müssen dieselbe Größe aufweisen.)
  • Wenn das Protokoll derzeit über mindestens einen Container verfügt und dieser Parameter ein gültiger Zeiger ist, stellt der Aufrufer eine positive ganze Zahl bereit, die die angeforderte Größe eines einzelnen Containers in Bytes darstellt. Die angeforderte Größe wird auf ein Vielfaches von 512 KB (für ein dediziertes Protokoll) oder 1 MB (für ein freigegebenes Protokoll) aufgerundet. Wenn die aufrundete Größe mindestens so groß ist wie die vorhandene Containergröße, erstellt CLFS neue Container, die die gleiche Größe wie die vorhandenen Container aufweisen. Bei erfolgreicher Rückgabe empfängt dieser Parameter die vorhandene Containergröße. Wenn die aufrundete Größe kleiner als die vorhandene Containergröße ist, schlägt ClfsAddLogContainerSet fehl.

[in] rguszContainerPath

Ein Zeiger auf ein Array von UNICODE_STRING Strukturen. Jede Zeichenfolge stellt den Pfadnamen für einen der neuen Container bereit. Die Anzahl der Elemente im Array wird durch cContainersangegeben. Ein bestimmter Pfad kann absolut oder relativ zum Speicherort der Basisprotokolldatei sein. Pfade, die relativ zur Basisprotokolldatei sind, müssen mit CLFS_CONTAINER_RELATIVE_PREFIX beginnen. Dies ist das Zeichenfolgenliteral (L"%BLF%\").

Rückgabewert

ClfsAddLogContainer- gibt STATUS_SUCCESS zurück, wenn er erfolgreich ist; andernfalls wird eine der fehlercodes zurückgegeben, die in Ntstatus.h definiert sind.

Bemerkungen

Ein Container ist ein zusammenhängendes Maß an stabilem Speicher. Beispielsweise könnte ein Container eine zusammenhängende Datei auf dem Datenträger sein. Ein Protokoll ist eine Gruppe von Containern zusammen mit einer Basisprotokolldatei. Weitere Informationen zu Containern finden Sie unter CLFS Stable Storage.

Ein container, der durch einen Pfad angegeben wird, der relativ zur Basisprotokolldatei ist, muss sich im selben Verzeichnis wie die Basisprotokolldatei oder ein Unterverzeichnis der Basisprotokolldatei befinden. Die Verzeichnisse "." und "." sind in einem relativen Pfad nicht zulässig.

Ein Protokoll kann einige Container mit absoluten Pfaden und anderen Containern mit relativen Pfaden enthalten.

Container werden in einem nicht komprimierten Modus erstellt und mit Nullen initialisiert.

Ein Protokoll muss mindestens zwei Container enthalten, bevor eine E/A-Datei darauf ausgeführt werden kann.

Eine Erläuterung der CLFS-Konzepte und -Terminologie finden Sie unter Common Log File System.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h)
Library Clfs.lib
DLL- Clfs.sys
IRQL- <= APC_LEVEL

Siehe auch

ClfsAddLogContainer-

ClfsRemoveLogContainerSet