Question Interrupt Service Routine

what api i can use to create interrupt service routine and do double floating point inside that routine
WdfInterruptCreate this is the one?

also enable sse in kernel x64 i should modify cr0/cr4 registers right?

VOID EnableSSE()
{
    ULONG64 cr0, cr4;
    cr0 = __readcr0();
 
    cr0 &= ~(1ull << 2);
    cr0 |= (1ull << 1);
 
    __writecr0(cr0);
    cr4 = __readcr4();
 
    cr4 |= (3ull << 9);
    __writecr4(cr4);
}

no you certainly don't do any of that.

Read the docs here: Using Floating Point in a WDM Driver - Windows drivers

1 Like

You shouldn't be doing ANY computation in an ISR. Just acknowledge the interrupt. remember in your context what happened, and fire your DPC to do the handling.