tiaraxin
驱动牛犊
驱动牛犊
  • 注册日期2007-02-26
  • 最后登录2013-09-26
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1370回复:0

关于IoConnectInterrupt挂载中断的问题

楼主#
更多 发布于:2007-03-29 20:20
  我写了如下的代码:
BOOLEAN InterruptService(
    IN struct _KINTERRUPT  *Interrupt,
    IN PVOID  ServiceContext
    )
{
     ...
     return TRUE;
}

NTSTATUS InterruptHook()
{
    KIRQL irql;
    KAFFINITY affi;
    ULONG mapi;
    NTSTATUS status;

    mapi = HalGetInterruptVector(
        Internal,
        0,
        IRQ,
        IRQ,
        &irql,
        &affi) & 0xff;

    status = IoConnectInterrupt(
        &pkinterrupt,
        InterruptService,
        NULL,
        NULL,
        mapi,
        irql,
        irql,
        0,
        FALSE,
        affi,
        FALSE
        );

    DbgPrint("connect Status:0x%X\n",status);

    return STATUS_SUCCESS;
}

NTSTATUS InterruptUnHook()
{
    if (pkinterrupt)
    {
        IoDisconnectInterrupt(pkinterrupt);
        pkinterrupt = NULL;
    }

    return STATUS_SUCCESS;
}

可是每次IoConnectInterrupt中的connect status都是0xc000000d即STATUS_INVALID_PARAMETER(参数错)这个值。不管改什么参数好像都没有什么用,不知IoConnectInterrupt还有什么秘密。请高手们指点一下,一点点也好。十分感激。
驱网无线,快乐无限
游客

返回顶部