NTSTATUS PLxInterruptCreate( IN PDEVICE_EXTENSION DevExt, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptResourceRaw, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptResourceTranslated ) { NTSTATUS status; WDF_INTERRUPT_CONFIG InterruptConfig; WDF_OBJECT_ATTRIBUTES Attributes; WDFINTERRUPT* InterruptToCreate; WDF_INTERRUPT_CONFIG_INIT( &InterruptConfig, PLxEvtInterruptIsr, PLxEvtInterruptDpc); WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE( &Attributes, DEVICE_INTERRUPT_CONTEXT); InterruptConfig.InterruptRaw = InterruptResourceRaw; InterruptConfig.InterruptTranslated = InterruptResourceTranslated; InterruptConfig.EvtInterruptEnable = PLxEvtInterruptEnable; InterruptConfig.EvtInterruptDisable = PLxEvtInterruptDisable; InterruptConfig.AutomaticSerialization = TRUE; status = WdfInterruptCreate(DevExt->Device, &InterruptConfig, &Attributes/*WDF_NO_OBJECT_ATTRIBUTES*/, InterruptToCreate); return status; }