On the HW side, all GPIOs are sharing IRQ number
Using this IOCTL, you can find out that every GPIO interrupt has it's own IRQ number.
#define IOCTL_HAL_GPIO2IRQ CTL_CODE(FILE_DEVICE_HAL, 2048, METHOD_BUFFERED,FILE_ANY_ACCESS)
You can find a sample in the SourceCode examples.