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)
Ndis.lib
IRQL 任何级别

另请参阅

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx