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 上运行,该 IRQL 小于或等于与同步对象关联的中断级别。 此中断是由 PcNewInterruptSync 函数的 ResourceList 和 ResourceIndex 参数指定的。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | 请参阅“备注”部分。 |