NdisMQueueDpc 函数 (ndis.h)
NDIS 微型端口驱动程序调用 NdisMQueueDpc 函数来计划 CPU 上的 DPC 调用。
语法
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] PVOID MiniportDpcContext
);
参数
[in] NdisInterruptHandle
微型端口驱动程序在上一次调用 中获取的中断句柄 NdisMRegisterInterruptEx 函数。
[in] MessageId
DPC 的 MSI 消息 ID。 如果 DPC 用于基于行的中断,则不使用此参数,应将其设置为零。 否则, MessageId 是 IO_INTERRUPT_MESSAGE_INFO_ENTRY 中的结构 IO_INTERRUPT_MESSAGE_INFO 结构。 当驱动程序成功向 NdisMRegisterInterruptEx 函数注册 MSI 时,NDIS 将传递指向 MessageInfoTable 成员处关联的 IO_INTERRUPT_MESSAGE_INFO 结构的指针。
[in] TargetProcessors
一个位图,指示 NDIS 应为其计划 DPC 的目标处理器。 TargetProcessors 中的每个位都标识一个 CPU。 如果调用方设置位 0,NDIS 会为 CPU 0 计划 DPC。 如果调用方设置位 1,NDIS 会为 CPU 1 计划 DPC,依此类推。
[in, optional] MiniportDpcContext
指向调用方指定的上下文区域的指针。 NDIS 将此指针传递给 MiniportInterruptDPC 和 的 MiniportDpcContext 参数 MiniportMessageInterruptDPC 函数。
返回值
NdisMQueueDpc 返回一个位图,指示 NDIS 成功为其计划了 DPC 的目标处理器。 返回值中的每个位都标识一个 CPU。 如果 NDIS 设置位 0,则 NDIS 为 CPU 0 计划了 DPC。 如果 NDIS 设置位 1,则 NDIS 为 CPU 1 计划 DPC,依此类推。
如果驱动程序请求了 CPU 的 DPC,并且 NDIS 指示它未计划该 DPC,则未计划 DPC,因为已针对该 CPU 计划了 DPC。
注解
NDIS 调用 MiniportInterruptDPC 或 MiniportMessageInterruptDPC 完成中断的延迟处理。 微型端口驱动程序可以调用 NdisMQueueDpc 来请求其他处理器的其他 DPC 调用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 和 6.1 中受支持。 对于 NDIS 6.20 及更高版本,请使用 NdisMQueueDpcEx。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | 任何级别 |