ClfsAddLogContainer-Funktion (wdm.h)
Die ClfsAddLogContainer Routine fügt einem CLFS-Protokoll einen Container hinzu.
Syntax
CLFSUSER_API NTSTATUS ClfsAddLogContainer(
[in] PLOG_FILE_OBJECT plfoLog,
[in] PULONGLONG pcbContainer,
[in] PUNICODE_STRING puszContainerPath
);
Parameter
[in] plfoLog
Ein Zeiger auf eine LOG_FILE_OBJECT-Struktur, die das Protokoll darstellt, dem der Container hinzugefügt wird. Der Aufrufer hat diesen Zeiger zuvor durch Aufrufen ClfsCreateLogFileabgerufen.
[in] 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 Byte) des neuen Containers darstellt. CLFS erstellt einen Container, der die angeforderte Größe auf ein Vielfaches von 512 KB (für ein dediziertes Protokoll) oder 1 MB (für ein Multiplexed-Protokoll) aufgerundet ist.
- Wenn das Protokoll derzeit über mindestens einen Container verfügt und dieser Parameter der NULL- Zeiger ist, erstellt CLFS einen neuen Container, der die gleiche Größe wie die vorhandenen Container aufweist. (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 (in Byte) des neuen Containers darstellt. Die angeforderte Größe wird auf ein Vielfaches von 512 KB (für ein dediziertes Protokoll) oder 1 MB (für ein Multiplexed-Protokoll) aufgerundet. Wenn die aufrundete Größe mindestens so groß ist wie die vorhandene Containergröße, erstellt CLFS einen neuen Container, der die gleiche Größe wie die vorhandenen Container aufweist. 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 ClfsAddLogContainer- fehl.
[in] puszContainerPath
Ein Zeiger auf eine UNICODE_STRING-Struktur, die den Pfadnamen für den neuen Container bereitstellt. Der 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 |