Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод 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 (include Portcls.h) |
IRQL | См. раздел "Примечания". |