AddLogContainerSet-Funktion (clfsw32.h)
Fügt dem physischen Protokoll, das dem Protokollhandle zugeordnet ist, mehrere Protokollcontainer hinzu, wenn der aufrufende Prozess Zugriff auf das Protokollhandle hat. Das Hinzufügen von Containern ermöglicht es einem Client, die Größe eines Protokolls zu erhöhen.
Syntax
CLFSUSER_API BOOL AddLogContainerSet(
[in] HANDLE hLog,
[in] USHORT cContainer,
[in, optional] PULONGLONG pcbContainer,
[in] LPWSTR *rgwszContainerPath,
[in, out, optional] LPVOID pReserved
);
Parameter
[in] hLog
Das Handle für ein geöffnetes Protokoll, das aus CreateLogFile mit Berechtigungen zum Hinzufügen eines Protokollcontainers abgerufen wird.
Die Datei kann dediziert oder multiplexiert sein.
[in] cContainer
Die Anzahl der Container im rgwszContainerPath-Array .
Dieser Wert muss nichtzero sein. Ein Protokoll muss über mindestens zwei Container verfügen, bevor E/A-Vorgänge ausgeführt werden können.
[in, optional] pcbContainer
Die Größe des Containers in Bytes.
Die Mindestgröße beträgt 512 KB für normale Protokolle und 1024 KB für multiplexte Protokolle. Die maximale Größe beträgt ca. 4 Gigabyte (GB).
Dieser Parameter ist erforderlich, wenn die Container einem neu erstellten Protokoll hinzugefügt werden. Wenn ein Container bereits erstellt wurde, kann dieser Parameter NULL oder ein Wert sein, der mindestens so groß wie die Größe des ersten Containers ist.
Protokollcontainergrößen sind ein Vielfaches der Protokollregionsgröße (512 KB). Wenn Sie einer neuen Datei einen Container hinzufügen, rundet die AddLogContainer-Funktion die Größe des Containers auf die nächste Begrenzung von 512 KB auf und gibt diese Größe im Wert zurück, auf den pcbContainer verweist.
Wenn das Protokoll bereits über mindestens einen Container verfügt und der Wert von *pcbContainer mindestens so groß ist wie die aktuelle Containergröße, erstellt die Funktion alle Container mit der aktuellen internen Größe und gibt diese Größe in *pcbContainer zurück.
[in] rgwszContainerPath
Ein Array von cContainer-Pfadnamen für Container.
Jedes Element im Array ist eine Breitzeichenzeichenfolge, die einen gültigen Pfad für den neuen Container im Protokollvolume enthält.
[in, out, optional] pReserved
Reserviert. Legen Sie Reserviert auf NULL fest.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero, was angibt, dass alle Container erfolgreich dem Protokoll hinzugefügt wurden.
Wenn die Funktion fehlschlägt, ist der Rückgabewert 0, was angibt, dass keiner der Container hinzugefügt wird. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
In der folgenden Liste werden die möglichen Fehlercodes identifiziert:
Hinweise
Die AddLogContainerSet-Funktion ist nicht atomar. Wenn der Vorgang z. B. durch einen ungültigen Pfadnamen unterbrochen wird, gibt der Aufruf von AddLogContainerSet einen Fehler zurück, aber einige Container wurden möglicherweise erstellt. Ihre Anwendung muss sich nach diesem Fehler wiederherstellen, z. B. indem sie bestimmt, welche Container hinzugefügt wurden.
Da AddLogContainerSet mehrere Container hinzufügt, ist es effizienter als wiederholte Aufrufe von AddLogContainer, die nur einen Container hinzufügen.
Container werden in einem nicht komprimierten Modus erstellt und geöffnet und beim Erstellen mit 0 (Nullen) initialisiert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | clfsw32.h |
Bibliothek | Clfsw32.lib |
DLL | Clfsw32.dll |