Функция RtlRunOnceComplete (ntddk.h)
Подпрограмма RtlRunOnceComplete завершает однократную инициализацию, начатую rtlRunOnceBeginInitialize.
Синтаксис
NTSYSAPI NTSTATUS RtlRunOnceComplete(
[in, out] PRTL_RUN_ONCE RunOnce,
[in] ULONG Flags,
[in, optional] PVOID Context
);
Параметры
[in, out] RunOnce
Указатель на RTL_RUN_ONCE структуру одноразовой инициализации.
[in] Flags
При необходимости драйверы могут указывать один или несколько следующих флагов:
RTL_RUN_ONCE_ASYNC
Работа в асинхронном режиме. Этот режим позволяет выполнять несколько попыток завершения параллельно. Если используется этот флаг, последующие вызовы подпрограммы RtlRunOnceComplete завершатся ошибкой, если этот флаг также не указан.
RTL_RUN_ONCE_INIT_FAILED
Попытка инициализации завершилась сбоем.
[in, optional] Context
Указывает инициализированные данные.
Возвращаемое значение
RtlRunOnceComplete возвращает одно из следующих значений NTSTATUS:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Не удалось завершить операцию. Если вызывающий объект, указанный RTL_RUN_ONCE_ASYNC в параметре Flags , это значение может указывать на то, что другой поток завершил инициализацию. |
Комментарии
Если RtlRunOnceComplete возвращает STATUS_SUCCESS, любой последующий вызов RtlRunOnceBeginInginInitialize для той же структуры RTL_RUN_ONCE предоставляет контекст в качестве инициализированных данных.
Если вызывающий объект, указанный RTL_RUN_ONCE_ASYNC в параметре Flags , а RtlRunOnceComplete возвращает любое значение, отличное от STATUS_SUCCESS, вызывающий объект должен очистить все попытки инициализации.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | ntddk.h (включая Ntddk.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |