Функция CreateLogContainerScanContext (clfsw32.h)

Создает контекст сканирования для использования с ScanLogContainers для перечисления всех контейнеров журналов, связанных с журналом, и выполняет первую проверку.

Синтаксис

CLFSUSER_API BOOL CreateLogContainerScanContext(
  [in]                HANDLE             hLog,
  [in]                ULONG              cFromContainer,
  [in]                ULONG              cContainers,
  [in]                CLFS_SCAN_MODE     eScanMode,
  [in, out]           PCLFS_SCAN_CONTEXT pcxScan,
  [in, out, optional] LPOVERLAPPED       pOverlapped
);

Параметры

[in] hLog

Дескриптор журнала, полученного из CreateLogFile , с разрешениями на сканирование контейнеров журналов.

Файл может быть выделенным или мультиплексированным журналом.

[in] cFromContainer

Контейнер, в котором должна быть запущена проверка.

Этот параметр представляет собой порядковый номер относительно количества контейнеров в журнале.

[in] cContainers

Количество структур CLFS_CONTAINER_INFORMATION для выделения CreateLogContainerScanContext .

Это число контейнеров, сканируемых при каждом вызове проверки, чтобы вызывающий объект знал, что сканирование завершено, когда количество возвращенных контейнеров меньше этого значения.

При выходе указатель на выделенный системой массив CLFS_CONTAINER_INFORMATION структур помещается в элемент pinfoContainer структуры, выделенной клиентом CLFS_SCAN_CONTEXT . На этот элемент указывает параметр pcxScan (то есть pcxScan-pinfoContainer>[]), а фактическое число структур в массиве помещается в "pcxScan-cContainersReturned>".

Клиент должен вызвать ScanLogContainers с параметром eScanMode, равнымCLFS_SCAN_CLOSE , чтобы он смог освободить этот массив; в противном случае происходит утечка памяти.

[in] eScanMode

Режим сканирования контейнеров.

Контейнеры можно сканировать в любом из следующих режимов.

Значение Значение
CLFS_SCAN_INIT
Инициализирует или повторно инициализирует сканирование из первого контейнера в списке контейнеров.

Этот режим инициализирует контекст контейнера и возвращает первый набор дескрипторов контейнеров, указанных cContainers .

CLFS_SCAN_FORWARD
Возвращает первый набор контейнеров, заданных cContainers .
CLFS_SCAN_BACKWARD
Возвращает последний набор контейнеров, заданных cContainers .

[in, out] pcxScan

Указатель на структуру, выделенную клиентом CLFS_SCAN_CONTEXT , которая получает контекст сканирования, который может быть передан функции ScanLogContainers , когда клиент проверяет контейнеры журналов выделенного журнала.

[in, out, optional] pOverlapped

Указатель на структуру OVERLAPPED , необходимую для асинхронной операции.

Этот параметр может иметь значение NULL , если асинхронная операция не используется.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

В следующем списке указаны возможные коды ошибок:

Комментарии

После завершения сканирования клиент должен снова вызвать ScanLogContainers с параметром eScanMode , установленным на CLFS_SCAN_CLOSE , чтобы он мог освободить выделенный системой массив CLFS_CONTAINER_INFORMATION структур; в противном случае происходит утечка памяти.

Примеры

Пример использования этой функции см. в разделе Перечисление контейнеров журналов.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 R2 [только классические приложения]
Целевая платформа Windows
Header clfsw32.h
Библиотека Clfsw32.lib
DLL Clfsw32.dll

См. также раздел

CLFS_CONTAINER_INFORMATION

CLFS_SCAN_CONTEXT

CLFS_SCAN_MODE

Общие функции файловой системы журнала

ScanLogContainers