Функция 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, любой последующий вызов RtlRunOnceBeginInitialize для той же структуры RTL_RUN_ONCE предоставляет Контекст в качестве инициализированных данных.
Если вызывающий объект, указанный RTL_RUN_ONCE_ASYNC в параметре Flags и RtlRunOnceComplete возвращает любое значение, отличное от STATUS_SUCCESS, вызывающий объект должен очистить любую инициализацию, которую она попыталась выполнить.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях Windows. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |