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 上运行。 此中断是由 PcNewInterruptSync 函数的 ResourceListResourceIndex 参数指定的。

要求

要求
目标平台 通用
标头 portcls.h (包括 Portcls.h)
IRQL 请参见“备注”部分。

另请参阅

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync