Метод 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 | См. раздел "Примечания". |