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 von ClfsCreateLogFile abgerufen.
[in] pcbContainer
Ein Zeiger auf eine Variable mit ULONGLONG-Typ. Die Rolle dieses Parameters hängt davon ab, ob das Protokoll derzeit über mindestens einen Container verfügt.
- Wenn das Protokoll derzeit keine Container enthält, gibt der Aufrufer eine positive ganze Zahl an, die der angeforderten Größe des neuen Containers in Bytes entspricht. CLFS erstellt einen Container mit der angeforderten Größe, die auf ein Vielfaches von 512 KB (für ein dediziertes Protokoll) oder 1 MB (für ein Multiplexprotokoll) aufgerundet ist.
- Wenn das Protokoll derzeit über mindestens einen Container verfügt und dieser Parameter der NULL-Zeiger ist, erstellt CLFS einen neuen Container mit der gleichen Größe wie die vorhandenen Container. (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 des neuen 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 Multiplexprotokoll) aufgerundet. Wenn die gerundete 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 aufgerundete 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 angibt. 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, wobei es sich um das Zeichenfolgenliteral (L"%BLF%\") handelt.
Rückgabewert
ClfsAddLogContainer gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.
Hinweise
Ein Container ist eine zusammenhängende Ausdehnung für stabilen Speicher. Ein Container kann beispielsweise 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 andere Container mit relativen Pfaden enthalten.
Container werden in einem nicht komprimierten Modus erstellt und mit Nullen initialisiert.
Ein Protokoll muss über mindestens zwei Container verfügen, bevor E/A-Vorgänge ausgeführt werden können.
Eine Erläuterung der CLFS-Konzepte und -Terminologie finden Sie unter Allgemeines Protokolldateisystem.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows. |
Zielplattform | Desktop |
Kopfzeile | wdm.h (einschließen von Wdm.h) |
Bibliothek | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |