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 函数的 ResourceListResourceIndex 参数指定的。

要求

要求 价值
目标平台 普遍
标头 portcls.h (包括 Portcls.h)
IRQL 请参阅“备注”部分。

另请参阅

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync