MINIPORT_ENABLE_MESSAGE_INTERRUPT回调函数 (ndis.h)

NDIS 可以调用微型端口驱动程序的 MiniportEnableMessageInterrupt 函数,以启用消息中断以进行诊断和故障排除。

注意 必须使用 MINIPORT_ENABLE_MESSAGE_INTERRUPT 类型声明函数。 有关详细信息,请参阅以下示例部分。
 

语法

MINIPORT_ENABLE_MESSAGE_INTERRUPT MiniportEnableMessageInterrupt;

void MiniportEnableMessageInterrupt(
  [in] NDIS_HANDLE MiniportInterruptContext,
  [in] ULONG MessageId
)
{...}

参数

[in] MiniportInterruptContext

上下文信息块的句柄。 微型端口驱动程序在 微型端口驱动程序传递给 的 MiniportInterruptContext 参数中提供了此句柄 NdisMRegisterInterruptEx 函数。

[in] MessageId

消息信号中断。 MessageId IO_INTERRUPT_MESSAGE_INFO_ENTRY 结构 IO_INTERRUPT_MESSAGE_INFO 结构。 当驱动程序成功向 NdisMRegisterInterruptEx 函数注册 MSI 时,NDIS 会向 MessageInfoTable 成员处的关联IO_INTERRUPT_MESSAGE_INFO结构传递指针。

返回值

备注

如果微型端口驱动程序调用 NdisMRegisterInterruptEx 函数来注册中断,则微型端口驱动程序必须提供 MiniportEnableMessageInterrupt 函数。

微型端口驱动程序应禁用并启用消息中断,如 MiniportMessageInterrupt MiniportMessageInterruptDpc 参考页。

NDIS 调用 MiniportEnableMessageInterrupt MiniportDisableMessageInterrupt 函数,用于启用和禁用消息中断以进行诊断和故障排除。 通常, MiniportEnableMessageInterruptMiniportDisableMessageInterrupt 访问由 共享的微型端口驱动程序资源 MiniportMessageInterrupt 函数。 因此,NDIS 在 DIRQL 中调用这些处理程序。

示例

若要定义 MiniportEnableMessageInterrupt 函数,必须先提供一个函数声明来标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。

例如,若要定义名为“ MyEnableMessageInterrupt”的 MiniportEnableMessageInterrupt 函数,请使用 MINIPORT_ENABLE_MESSAGE_INTERRUPT 类型,如以下代码示例所示:

MINIPORT_ENABLE_MESSAGE_INTERRUPT MyEnableMessageInterrupt;

然后,按如下所示实现函数:

_Use_decl_annotations_
VOID
 MyEnableMessageInterrupt(
    __in  NDIS_HANDLE  MiniportInterruptContext,
    __in  ULONG  MessageId
    )
  {...}

MINIPORT_ENABLE_MESSAGE_INTERRUPT函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations注释可确保使用应用于头文件中MINIPORT_ENABLE_MESSAGE_INTERRUPT函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数

有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 Windows
标头 ndis.h (包括 Ndis.h)
IRQL DIRQL (请参阅备注部分)

另请参阅

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY MiniportDisableMessageInterrupt

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMRegisterInterruptEx