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 函数的 ResourceList 和 ResourceIndex 参数指定的。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | 请参见“备注”部分。 |