Метод IInterruptSync::CallSynchronizedRoutine (portcls.h)

Метод CallSynchronizedRoutine вызывает подпрограмму, которая не является подпрограммой обслуживания прерываний (ISR), но выполнение которой должно быть синхронизировано с ISR.

Синтаксис

NTSTATUS CallSynchronizedRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext
);

Параметры

[in] Routine

Указатель на вызываемую подпрограмму. Эта подпрограмма будет выполняться исключительно из ISR объекта и всех других подпрограмм, синхронизированных с помощью объекта . Даже на компьютерах с несколькими процессорами подпрограммы, синхронизированные данным объектом, не будут выполняться одновременно. Этот параметр является указателем функции типа PINTERRUPTSYNCROUTINE (см. IInterruptSync).

[in] DynamicContext

Значение контекста, передаваемое в подпрограмму.

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

CallSynchronizedRoutine возвращает STATUS_SUCCESS, если вызов был успешным. В противном случае метод возвращает соответствующий код ошибки.

Комментарии

Выполнение любого зарегистрированного ISR гарантированно будет отложено до завершения вызова процедуры, передаваемой CallSynchronizedRoutine в .

Вызывающие CallSynchronizedRoutine объекты должны выполняться на уровне IRQL, который меньше или равен уровню прерывания, связанного с объектом синхронизации. Это прерывание было задано параметрами ResourceList и ResourceIndex функции PcNewInterruptSync.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL См. раздел "Примечания".

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

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync