return STATUS_UNSUCCESSFUL;
}
-NTAPI
PKINTERRUPT
+NTAPI
IInterruptSync_fnGetKInterrupt(
IN IInterruptSync * iface)
{
IInterruptServiceRoutine,
(PVOID)This,
&This->Lock,
- Descriptor->u.Interrupt.Vector,
+ Descriptor->u.Interrupt.Vector,
+ Descriptor->u.Interrupt.Level,
Descriptor->u.Interrupt.Level,
- Descriptor->u.Interrupt.Level, //FIXME
- Descriptor->Flags,
- TRUE,
- Descriptor->u.Interrupt.Affinity,
+ (Descriptor->Flags & CM_RESOURCE_INTERRUPT_LATCHED),
+ (Descriptor->Flags != CM_RESOURCE_INTERRUPT_LATCHED),
+ Descriptor->u.Interrupt.Affinity,
FALSE);
DPRINT("IInterruptSync_fnConnect result %x\n", Status);
DPRINT("PcNewInterruptSync entered OutInterruptSync %p OuterUnknown %p ResourceList %p ResourceIndex %u Mode %d\n",
OutInterruptSync, OuterUnknown, ResourceList, ResourceIndex, Mode);
- if (!OutInterruptSync || !ResourceList || Mode > InterruptSyncModeRepeat || Mode < 0)
+ if (!OutInterruptSync || !ResourceList || Mode < InterruptSyncModeNormal || Mode > InterruptSyncModeRepeat)
return STATUS_INVALID_PARAMETER;
if (ResourceIndex > ResourceList->lpVtbl->NumberOfEntriesOfType(ResourceList, CmResourceTypeInterrupt))