NdisMRegisterInterruptEx 函数 (ndis.h)

NDIS 微型端口驱动程序调用 NdisMRegisterInterruptEx 函数来注册中断。

语法

NDIS_STATUS NdisMRegisterInterruptEx(
  [in]  NDIS_HANDLE                              MiniportAdapterHandle,
  [in]  NDIS_HANDLE                              MiniportInterruptContext,
  [in]  PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
  [out] PNDIS_HANDLE                             NdisInterruptHandle
);

参数

[in] MiniportAdapterHandle

NDIS 传递给 的微型端口适配器句柄 MiniportInitializeEx 函数。

[in] MiniportInterruptContext

指向上下文信息块的指针。 微型端口驱动程序分配此内存以存储有关中断的信息。 NDIS 在后续调用中将上下文信息块传递给与中断关联的其他函数。

[in] MiniportInterruptCharacteristics

指向 的指针 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 微型端口驱动程序创建的结构。 驱动程序使用处理程序入口点和定义中断特征的配置参数初始化此结构。

[out] NdisInterruptHandle

指向 NDIS 句柄的指针。 NDIS 将新创建的中断对象的句柄写入 NdisInterruptHandle 指针指定的地址。

返回值

NdisMRegisterInterruptEx 可以返回以下值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
NDIS 初始化了中断对象,并在 NdisInterruptHandle 中提供了有效的中断句柄。 NDIS 声明了硬件资源,并设置了发生中断时调用的函数。
NDIS_STATUS_RESOURCES
NdisMRegisterInterruptEx 由于资源不足而失败。
NDIS_STATUS_XXX 或 NT_STATUS_XXX
尝试初始化中断对象失败,原因与上述列表中的原因不相同。

注解

如果微型端口驱动程序管理生成中断的 NIC,则必须从其 MiniportInitializeEx 函数调用 NdisMRegisterInterruptEx

MiniportInitializeEx 必须调用调用 NdisMRegisterInterruptEx 之前,NdisMSetMiniportAttributes 函数。

微型端口驱动程序必须为以下中断服务函数指定入口点:

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

如果 NIC 支持 MSI) (消息信号中断,微型端口驱动程序应为以下 MSI 服务函数指定入口点:

MiniportMessageInterrupt

MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt

如果驱动程序为 MSI 指定入口点,则它还必须为非 MSI 中断服务函数指定入口点。 此外,如果 NdisMRegisterInterruptEx 返回NDIS_STATUS_SUCCESS,驱动程序必须检查 的 InterruptType 成员的值 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 结构以确定授予的 NDIS 中断的类型。 如果 NDIS 无法授予 MSI 支持,它将授予对基于行的中断的支持。

在 NIC 上启用中断时,驱动程序的 MiniportInterrupt (或 MiniportMessageInterrupt) 函数可以在驱动程序调用 NdisMRegisterInterruptEx 之后随时调用,甚至在 NdisMRegisterInterruptEx 返回之前也是如此。 因此,驱动程序在准备好处理中断之前,不应调用 NdisMRegisterInterruptEx

驱动程序调用 NdisMDeregisterInterruptEx 函数,用于释放以前使用 NdisMRegisterInterruptEx 分配的资源。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 Init_DeRegisterInterrupt (ndis) Init_RegisterInterrupt (ndis) Irql_Interrupt_Function (ndis) NdisMDeregisterInterruptEx (ndis)

另请参阅

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes