diff --git a/ntoskrnl/io/iomgr/irq.c b/ntoskrnl/io/iomgr/irq.c index 80d8b30e89b..66cbbdd1162 100644 --- a/ntoskrnl/io/iomgr/irq.c +++ b/ntoskrnl/io/iomgr/irq.c @@ -57,11 +57,11 @@ IoConnectInterrupt(OUT PKINTERRUPT *InterruptObject, /* Make sure we have a valid CPU count */ if (!Count) return STATUS_INVALID_PARAMETER; - /* Allocate the array of I/O Interrupts */ - IoInterrupt = ExAllocatePoolWithTag(NonPagedPool, - (Count - 1) * sizeof(KINTERRUPT) + - sizeof(IO_INTERRUPT), - TAG_KINTERRUPT); + /* Allocate the array of I/O interrupts */ + IoInterrupt = ExAllocatePoolZero(NonPagedPool, + (Count - 1) * sizeof(KINTERRUPT) + + sizeof(IO_INTERRUPT), + TAG_KINTERRUPT); if (!IoInterrupt) return STATUS_INSUFFICIENT_RESOURCES; /* Select which Spinlock to use */ @@ -72,9 +72,6 @@ IoConnectInterrupt(OUT PKINTERRUPT *InterruptObject, Interrupt = (PKINTERRUPT)(IoInterrupt + 1); FirstRun = TRUE; - /* Start with a fresh structure */ - RtlZeroMemory(IoInterrupt, sizeof(IO_INTERRUPT)); - /* Now create all the interrupts */ Affinity = ProcessorEnableMask & KeActiveProcessors; for (Count = 0; Affinity; Count++, Affinity >>= 1)